題目大意:
對於給定的$n(n\leq2\times10^9)$,求$\sum_^n\varphi(i)$。
思路:設$s(n)=\sum_^n\varphi(i)$。
因為$\sum_\varphi(d)=n$,$s(n)=\sum_^n(i-\sum_
13const
int n=1587402,m=120256;14
bool
vis[n];
15int
lim,phi[n],p[m];
16int64 sum[n];
17 __gnu_cxx::hash_mapmap;
18 inline void
sieve()
25for(register int j=1;j<=p[0]&&i*p[j]<=lim;j++)
31 phi[i*p[j]]=phi[i]*phi[p[j]];32}
33 sum[i]=sum[i-1]+phi[i];34}
35}36 inline int64 calc(const
int &n)
44return map[n]=ans;45}
46int
main()
線性篩預處理$s$的前$n^$項,剩下的數論分塊計算,用雜湊表儲存已經算過的值,記憶化搜尋即可。時間複雜度$o(n^)$。
BZOJ4805 尤拉函式求和
bzoj4805 尤拉函式求和 給出乙個數字n,求sigma phi i 1 i n 正整數n。n 2 10 9 輸出答案。1032 題目要求 sum n varphi i 這。不是很顯然乙個線性篩然後字首和就沒了麼?水題?並不!n leq 2 times 10 9 直接 tle 到 怎麼辦?沒事,...
BZOJ 4805 尤拉函式求和
解題思路類似莫比烏斯函式之和 題目大意 求 1,n 內的尤拉函式 varphi 之和。n 2 10 思路 令 m n sum varphi i 題目所求即為 m n 由於 sum varphi d n 所以 sum sum varphi d frac 令 i kd 則有 sum sum varphi...
bzoj4805 尤拉函式求和(杜教篩)
題意 給定n,求尤拉函式前n項和。資料範圍 n 2e9 解法 尤拉函式性質 d n d n sum d n d n d n轉化為卷積形式 i i d i id i id 杜教篩遞推式 g 1 s n i 1n f g i i 2 ng i s ni g 1 s n sum n f g i sum n...