持续更新ing
唔。从年前就想要搞,但是一直鸽到现在。
不过,就从现在开始吧!!!
前导知识
莫比乌斯反演定理两种形式的证明
目录
1.luogoP2568 GCD
2.luoguP2257 YY的GCD
题目链接
莫比乌斯反演的入门题。
设
#include
#include
#include
using namespace std;
const int N=1e7+100;
int n;
long long ans;
int vis[N],u[N],sum[N];
int p[N];
int cnt=0;
void seive(){
vis[0]=1;
vis[1]=1;
u[1]=1;
for(int i=2;i<=n;++i){
if(!vis[i])p[cnt++]=i,u[i]=-1;
for(int j=0;j
题目链接
筛的时候先筛出来,再求,求得时候时间复杂度跟埃氏筛差不多。再对求前缀和。
然后就是整除分块的套路写法了。
#include
#include
using namespace std;
const int N=1e7+100;
int vis[N],u[N],p[N];
long long g[N],sum[N],ans;
int cnt,t,n,m;
void seive(){
vis[1]=1;
u[1]=1;
for(int i=2;im)n^=m^=n^=m;
ans=cal(n,m);
printf("%lld\n",ans);
}
return 0;
}