AC,但疑问
查看原帖
AC,但疑问
431150
The_Last_Candy楼主2023/7/10 20:43

我采用的是预处理

F(T)=∑d∣Tμ2(d)dμ(Td)F(T) = \sum_{d|T}\mu^2(d)d\mu(\frac Td)

然后整除分块的做法(但是我是调和级数暴力搞的),请问在统计答案的时候对于这个数论分块为什么要求1~ni\frac ni 的和啊? 求答案代码如下:

while(T--)
{
  cin>>n>>m;
  ll ans = 0;
  for(ll i = 1,j;i <= min(n,m);i = j + 1)
  {
     j = min(n / (n / i),m / (m / i));
     ans = (ans + S(n / i) * S(m / i) % MOD * (pre[j] - pre[i - 1] + MOD) % MOD) % MOD;
   }
   cout<<ans<<endl;
}

预处理代码如下:

for(int i = 1;i <= N - 1;i++)
   for(int j = i,t = 1;j <= N - 1;j += i,t++)
		pre[j] = (pre[j] + miu[i] * miu[i] * i * miu[t] + MOD) % MOD;
for(int i = 2;i <= N - 1;i++) 
   pre[i] = (pre[i - 1] + i * i % MOD * pre[i] % MOD) % MOD;
2023/7/10 20:43
加载中...