码迷,mamicode.com
首页 > 其他好文 > 详细

莫比乌斯反演

时间:2018-08-16 13:36:30      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:分块   线性   str   +=   一个   lse   bsp   int   容斥   

莫比乌斯反演

 

整除分块 模板

1 for(int l=1,r;l<=n;l=r+1)
2 {
3     r=n/(n/l);
4     ans+=(r-l+1)*(n/l);
5 }

 

莫比乌斯函数:

莫比乌斯函数其实只是一个由容斥系数所构成的函数。

线性筛 模板

 1 void get_mu(int n)
 2 {
 3     mu[1]=1;
 4     for(int i=2;i<=n;i++)
 5     {
 6         if(!vis[i]){prim[++cnt]=i;mu[i]=-1;}
 7         for(int j=1;j<=cnt&&prim[j]*i<=n;j++)
 8         {
 9             vis[prim[j]*i]=1;
10             if(i%prim[j]==0)break;
11             else mu[i*prim[j]]=-mu[i];
12         }
13     }
14  }

 

莫比乌斯反演:

例题:bzoj1101 [POI2007]Zap

 

莫比乌斯反演

标签:分块   线性   str   +=   一个   lse   bsp   int   容斥   

原文地址:https://www.cnblogs.com/weixq351/p/9486372.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!