博主鏈結
模版中以求尤拉函式和莫比烏斯函式字首和為例
#include#include#define ll long long int;
#define n 2001000
#define ni 500000004 //2的逆元
using namespace std;
const long long int mod=0x3f3f3f3f3f3f3f;
inline void read(long long &x) //輸入外掛程式
while(isdigit(c))
x*=p;
}bool vis[n];
int mu[n],sum1[n];
long long phi[n],sum2[n];
int cnt,prim[n];
int e,e1;
mapw,w1; //雜湊 w用來求phi字首和 w1用來求miu字首和
void get(int maxn)
for(int j=1;j<=cnt&&prim[j]*i<=maxn;j++)
else mu[i*prim[j]]=-mu[i],phi[i*prim[j]]=phi[i]*(prim[j]-1);}}
for(int i=1;i<=maxn;i++)sum1[i]=sum1[i-1]+mu[i],sum2[i]=(sum2[i-1]+phi[i])%mod; //打乙個maxn的phi字首和表 和miu字首和表
}int djsmu(long long x) // 求miu字首和
return w[x]=ans;
}long long djsphi(long long x) //求phi 字首和
return w1[x]=ans;
}int main()
return 0;
}
莫比烏斯函式 反演 杜教篩 小結
1 莫比烏斯函式 反演 ppt bzoj 2440 莫比烏斯函式基礎應用 容斥 bzoj 2301 反演基本應用 bzoj 2820 質數個數o n logn 均攤o logn 總的列舉質數倍數o n 待補 bzoj 3529 推式子 離線排序插入 bzoj 2154 推式子 bzoj 2693 同...
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...
BZOJ 4805 尤拉函式求和 杜教篩
複習一下杜教篩 所有除法向下取整 公式 s n frac f g i sum g i s frac 應用時一定要滿足 sum f g i 要能夠快速求出,且 f,g 都為積性函式.其中 f g i sum 就是 f,g 的迪利克雷卷積 常見的變換 證明就不給了 一些定義 i x 1,id x x,e...