~{→看不见LaTex格式的Dalao们请刷新本页Thanks♪(・ω・)ノ←}~
2019寒假集训题
C.欧拉心算
题面
给出一个数字N,求$\sum_{i=1}^n\sum_{j=1}^n\phi(gcd(i,j))$。
Input
第一行为一个正整数$T$,表示数据组数。
接下来$T$行为询问,每行包含一个正整数$N$。
Output
按读入顺序输出答案。
Sample Input
1
10
Sample Output
136
Hint
$T\leq5000,N\leq10^7$
解析
莫比乌斯反演一波可得:
令$g(n)=\sum_{d=1}^n\mu(d)\lfloor\frac nd\rfloor^2$
因为$\lfloor\frac nd\rfloor-\lfloor\frac {n-1}d\rfloor=1$成立当且仅当$d|n$
那么$g(n)=g(n-1)+\sum_{d|n}\mu(d)(2\frac {n}d-1)$
因为$\sum_{d|n}\frac {\mu(d)}d=\frac {\phi(n)}n$
$g(n)=g(n-1)+2\phi(d)-[n==1]$
于是有$Ans=\sum_{i=1}^n\phi(i)g(\lfloor\frac ni\rfloor)$
该算法时间复杂度为$O(T\sqrt N)$
1 |
|