杜教篩 求積性函式字首和

2021-08-28 03:50:14 字數 1043 閱讀 4994

博主鏈結

模版中以求尤拉函式和莫比烏斯函式字首和為例

#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...