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$到**。。。
怎麼辦?
沒事,我們有杜教篩!
具體的可以看這個板子題:
然後一發模板就可以了。
附**:
#include#include#include#include#define maxn 1700010using namespace std;
mapsum;
int k=0,prime[maxn],mu[maxn];
bool np[maxn];
inline long long read()
return date;
}void make()
for(int j=1;j<=k&&prime[j]*i<=m;j++)
} for(int i=2;i<=m;i++)mu[i]+=mu[i-1];
}long long solve_mu(long long n)
sum[n]=ans;
return ans;
}long long solve_phi(long long n)
return (((ans-1)>>1)+1);
}int main()
BZOJ4805 尤拉函式求和
題目大意 對於給定的 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 ...
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...