整除分块套 powerful number 筛
  • 板块学术版
  • 楼主401rk8
  • 当前回复18
  • 已保存回复18
  • 发布时间2022/6/14 19:51
  • 上次更新2023/10/27 23:18:49
查看原帖
整除分块套 powerful number 筛
236866
401rk8楼主2022/6/14 19:51

代码大概长这样:

// p 是质数集
void dfs(LL n,int i,LL x) {
	LL y = n/x;
	for(; p[i]*p[i] <= y; ++i)
		for(LL pp = p[i]*p[i], e = 2; pp <= y; pp *= p[i], ++e)
			dfs(n,i+1,x*pp);
}
for(LL l = 1, x,r; l <= n; l = r+1)
	x = n/l, r = n/x, dfs(r,0,1,1)

求证复杂度,跑下来类似 O(n45)O(n^{\frac{4}{5}})

模拟赛题解 说可以做到 O(n23)O(n^{\frac{2}{3}})(可能是我理解错了),是不是有什么高明的做法

2022/6/14 19:51
加载中...