problem
一句話題意:求\(_^n\beginn\\i\end\)
根據第二類斯特林數的展開式,有
\[\beginn\\k\end=\frac\sum_^k(-1)^i\begink\\i\end(k-i)^n
\]具體證明可以看這裡
進一步整理,式子化為
\[\beginn\\k\end=\sum_^k\frac\times \frac
\]可以發現這是乙個卷積的形式
構造多項式
\[f(x)=\sum_^n\fracx^i
\]\[g(x)=\sum_^n\fracx^i
\]\[s(x)=f(x)*g(x)
\]則\(s(x)\)的\(k\)次項係數即為\(\beginn\\k\end\)
預處理階乘的逆元
本題的模數有原根\(3\),所以直接用\(ntt\)做卷積就可以了
時間複雜度\(o(n\log n)\)
#include #include #include #include #include #include #define inv(x) (fastpow((x),mod-2))
using namespace std;
typedef long long ll;
const int maxn=200005;
const ll mod=167772161,g=3,ig=55924054;
int n;
ll a[maxn<<2],b[maxn<<2],ifac[maxn];
ll fastpow(ll a,ll b)
return re;
}int len;
int rev[maxn<<2];
void ntt(ll *f,int type)
P5395 模板 第二類斯特林數 行
多項式乘法練習題 p5395 模板 第二類斯特林數 行 我們設 s begin n m end 考慮第二類斯特林數的通項式 s sum m 1 ic i frac sum m 1 i frac frac sum m frac cdot frac 可以發現這是乙個卷積的形式。我們設 hat sum f...
模板 第二類斯特林數 列
從通項公式入手好像不行了。法一 直接從定義入手 把n個球劃分成m個等價類 假設等價類兩兩不同,最後除以m!直接上egf,a 1 i x i a m的i次項係數,再乘上i!再除以m!法二 從遞推公式入手 s n,m s n 1,m 1 m s n 1,m 設ogf s m x 是第m列二斯的ogf,則...
第二類斯特林數模板
第二類斯特林數s n m s n,m 表示的是把 n 個不同的小球放在 m 個相同的盒子裡方案數。遞推式子如下 初始化 s 0 0 1s n,m s n 1,m 1 ms n 1,m s n m s n 1,m 1 ms n 1,m const ll mod 1e9 7 ll s maxn maxn...