杜教篩利用狄利克雷卷積來構造積性函式字首和之間的遞推式,從而利用記憶化搜尋在 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年國家候選隊 中的任之洲的...