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\\ 求\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为期望 \]
来源:oschina
链接:https://my.oschina.net/u/4305379/blog/4366475