模板 杜教篩

2022-05-20 12:48:06 字數 748 閱讀 1481

杜教篩利用狄利克雷卷積來構造積性函式字首和之間的遞推式,從而利用記憶化搜尋在 n 的所有特殊點的字首和處求得 n 處的字首和。

杜教篩用來處理積性函式求和問題,時間複雜度為 \(o(n^)\)。

具體證明如下

\[\mu \star 1=\epsilon

\]\[\sum\limits_^ni=\sum\limits_^n\sum\limits_\varphi(d)=\sum\limits_^n\sum\limits_^\rfloor}\varphi(k)

\]**如下

#include using namespace std;

typedef long long ll;

const int maxn=5e6+10;

unordered_map_phi,_mu;

int n,mu[maxn],prime[maxn],tot;

ll phi[maxn];

bool vis[maxn];

void seive()else}}

for(int i=1;i<=5e6;i++)mu[i]+=mu[i-1],phi[i]+=phi[i-1];

}ll get_phi(ll x)

return _phi[x]=ret;

}ll get_mu(ll x)

return _mu[x]=ret;

}int main()

return 0;

}

模板 杜教篩

杜教篩用來解決積性函式求字首和的問題。複雜度為 o n frac 適用情況 已知函式 f 求 sum f 存在 f g f 且 g,sum g,f,sum f 容易求出。常用公式 mu i n 1 varphi i id 以求 sum mu 為例。mu i n 1 sum i 1 1 1 sum i...

習題 杜教篩(Sum)(杜教篩)

傳送門杜教篩的板子,拿來練手 beginans sum phi i end g n 1,phi n f n h n sum phi d g frac n h n sum f d g frac 令f n sum f i h n sum h i beginh n sum h i sum sum f d ...

杜教篩小結

目錄 bzoj3944 sum hihocoder 1456 rikka with lattice 這個演算法十分的強.一般就是用於卡一道數論推結論題最後的 20 30 分.被迫來學習qwq 這個一般用來篩乙個積性函式在 10 左右的字首和.為了了解一下,可以看看 2016年國家候選隊 中的任之洲的...