整 除 分 块
https://www.cnblogs.com/chenxiaoran666/p/divide.html //大神勃客
\[luogu\ p2261\\
G(n,k)=\sum_{i=1}^nk\ mod\ i\\
a\ \%\ b= a-b*\lfloor\frac{a}{b}\rfloor\\
ans=\sum_{i=1}^nk-i*\lfloor\frac{k}{i}\rfloor\\
ans=n*k-\sum_{i=1}^ni*\lfloor\frac{k}{i}\rfloor\\
\lfloor\frac{k}{i}\rfloor可以分块来做,\lfloor\frac{k}{i}\rfloor大约2* \sqrt{k}种取值
\]
我们用样例来打表找规律,发现 $\lfloor \frac{k}{i} \rfloor $分别在一定的区域内相等,如下表所示:
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
\(\lfloor \frac{k}{i} \rfloor\) | 5 | 2 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
可见 \(\lfloor \frac{k}{i} \rfloor\) 分成了 3 块,我们只需要计算 \(n×k\) 减去每一块的和即可
通过打表不难发现 \(\lfloor \frac{k}{i} \rfloor\)最多有\(2*\sqrt{k}\)种取值
当\(\lfloor\frac ni\rfloor=\lfloor\frac n{i'}\rfloor\),i′的最大取值为\(\lfloor\frac n{\lfloor\frac ni\rfloor}\rfloor\)
根据上个结论,首先枚举块的左边界 l,并根据左边界和 k 计算出右边界 r
令\(t = \lfloor \frac{k}{l} \rfloor\),分两种情况讨论:
-
\(t \neq 0\),则 \(r = \min (\lfloor \frac{k}{t} \rfloor , n)\);
-
\(t=0\),则$ r=n。$
-
在[k/3]+1到[k/2]这个区间里,k%i也是一个等差数列,公差为2
在[k/4]+1到[k/3]这个区间里,k%i也是一个等差数列,公差为3
.........
一直到[k/√k]+1到[k/(√k-1)]这个区间里,k%i也是一个等差数列,公差为(√k-1).
剩下的1到[k/√k]的区间直接暴力求解即可.
这样,我们就能用O(√k)来解决了.
\[luogu\\ p2260 p2834双倍经验\\
求\sum_{i=1}^n\sum_{j=1}^m(n\ mod\ i) * (m\ mod\ j),i\not=j,mod\ 19940417的值
\]
根据容斥原理
\[\sum_{i=1}^n\sum_{j=1}^m(n\ mod\ i) * (m\ mod\ j),i\not=j\\
=\sum_{i=1}^n\sum_{j=1}^m(n-i\lfloor\frac{n}{i}\rfloor)(m-j\lfloor\frac{m}{j}\rfloor)i\not=j;\\
令F(n)=\sum_{i=1}^n(n-i\lfloor\frac{n}{i}\rfloor)\\
则原式为F(n)F(m)-\sum_{i=1}^n(n-i\lfloor\frac{n}{i}\rfloor)(m-i\lfloor\frac{m}{i}\rfloor)先看后面\\
拆括号\sum_{i=1}^nnm-ni\lfloor\frac{m}{i}\rfloor-mi\lfloor\frac{n}{i}\rfloor+i^2\lfloor\frac{n}{i}\rfloor\lfloor\frac{m}{i}\rfloor
直接整除分块,复杂度O(\sqrt{n}+\sqrt{m})
\]
\[\delta^2=\frac{\sum(X-\mu)}{N}=E(X^2) - [ E(X)]^2 \ \delta^2为总体方差,X为变量,\mu为总体均值,N为总体例数
\\E为期望
\]