BZOJ2956:模积和

2019-04-13 14:38发布

传送门
  • 题意
    ((n%i)(m%j))(1in,1jm,i!=j)
  • 题解
如果没有i!=j这一条件这道题就简单了。
(n%i)=(nnii)=n2(nii) 对于ni相同的区间一起处理即可。
证明:对于任意nni的数量级为n
因为对于i<n,i的取值最多n个,此时区间也不超过n个,对于in,ni的取值最多n个(因为不超过n)。所以ni的数量级为n
加上i!=j这一条件后,将原式变形,得:
i=1nj=1ijm((n%i)(m%j))=i=1n(n%i)j=1ijm(m%j)=i=1n(n%i)j=1m(m%j)i=1min(n,m)(n%i)(m%i) 对于前面一部分很好处理,对于后面一部分,再进一步变形得
i=1min(n,m)(n%i)(m%i)=