BZOJ4805 尤拉函式求和

2022-05-20 16:07:21 字數 701 閱讀 2286

題目大意:

對於給定的$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...