void init_mu{//init_mu 就可得到1-n的莫比乌斯函数的值,存在mu中
不管你认不认识竭泽,都给你重新介绍一下 竭泽,当代水平最底层的退役acmer,擅长出毒瘤题面签到题恶心选手,十恶不赦,大逆不道 可以给大家体会体会 题面十分吓人的诈骗签到题 无法分清是HI还是HL的毒瘤签到题 所以,当云哥邀请竭泽的时候,竭泽心里当然是打起了小算盘,开始整活,再出一个题面恶心的签到题 题目: 竭泽十分喜欢数论,并且在莫比乌斯反演点了很多奇怪的技能点 在介绍这个问题之前,竭泽会给大家介绍一点数论常识常见的数论符号和数论解题trick 0. gcd(i, j)表示i和j的最大公因数 1. [n == 1] 这个符号表示,若n == 1, 则返回1, 否则返回0 2. μmuμ(i)是莫比乌斯函数,, 其中pip_ipi为质因数 3. 狄利克雷卷积 我们定义 * 为狄利克雷卷积符号, 那么h(n)=(f∗g)(n)=∑d∣nf(d)g(nd)h(n) = (f * g)(n) = sum_{d|n} f(d)g(frac{n}{d})h(n)=(f∗g)(n)=∑d∣nf(d)g(dn) 4. 莫比乌斯反演 其中有一个重要性质 ∑d∣nμ(d)=[n==1]sum_{d|n} mu(d) = [n==1]∑d∣nμ(d)=[n==1] 这里给出莫比乌斯线性筛的函数 const int maxn=1e6+5;
bool vis[maxn];
int prime[maxn],mu[maxn];
void init_mu(int n){//init_mu(n) 就可得到1-n的莫比乌斯函数的值,存在mu中
int cnt=0;
mu[1]=1;
for(int i=2;i