Tibbar的後花園 生成函式,多項式exp

2022-05-20 05:09:33 字數 1893 閱讀 4947

這篇文章僅限於沒有入門生成函式的蒟蒻讀,dalao勿噴

題目的資料範圍是\(n< 2^\)

題目給出的限制,其實就是對於每乙個聯通塊

1.不存在乙個點度數\(\ge 3\)

2.不存在乙個長度為\(3\)的倍數的環

可以看到,乙個大小為\(n\)的聯通塊,合法方案只有為一條鏈,或者乙個長度不為3的倍數的環

設\(f_n\)為大小為\(n\)的聯通塊方案數,則

\(f_n=\left\1 && n\leq 2 \\ \frac+[n \mod 3\ne 0](\frac) && n\ge 3\end\right.\)

即鏈和環的個數

如果採用普通的分治+ntt列舉每個聯通塊大小,複雜度為\(o(n\log ^2n)\),顯然無法通過這個題

考慮構造生成函式快速求解

可以看到,如果排列\(n\)個點,每個點生成\(m\)個大小為\(a_i(\sum a_i=n)\)的聯通塊,那麼答案是

\(\sum \frac \pi \frac}\)

即除去聯通塊內的排列,聯通塊之間的排列

令\(g_n=\sum \fracx^i\)

那麼答案可以轉化為

\[n![x^n](\sum_^ \frac)

\]就是\(i\)次累乘(疊加了\(i\)個聯通塊)之後,第\(n\)項的係數再乘上少掉的階乘

然後由於

\(\sum \frac=e^x\)

所以就是求出\(n![x^n]e^\)

多項式exp我跑得血慢啊

#include#include#include#include#include#includeusing namespace std;

//#pragma gcc optimize(2)

#pragma gcc optimize(3)

#define mod1(x) ((x>=p)&&(x-=p))

#define mod2(x) ((x<0)&&(x+=p))

#define reg register

typedef long long ll;

#define rep(i,a,b) for(reg int i=a,i##end=b;i<=i##end;++i)

#define drep(i,a,b) for(reg int i=a,i##end=b;i>=i##end;--i)

#define pb push_back

template inline void cmin(t &a,t b)

template inline void cmax(t &a,t b)

int mod_inv[n];

int rev[n],w[n],iw[n],tmp[n];

int premake(int n)

rep(i,n,len) b[i]=0; }}

namespace ln

}namespace exp

rep(i,len,r) c[i]=0;

ntt(r,b,1),ntt(r,c,1);

rep(i,0,r-1) b[i]=1ll*b[i]*c[i]%p;

ntt(r,b,-1);

rep(i,len,r) b[i]=0;

if(len>=n) break;

} rep(i,n,len) b[i]=0; }}

int fac[n],g[n],f[n];

int main() // 預處理轉移係數,注意還要額外除去階乘

for(reg int i=1,t=1;i<=n;t=1ll*t*mod_inv[++i]%p) f[i]=1ll*f[i]*t%p;

exp::exp(f,g,n+1);

printf("%lld\n",1ll*g[n]*fac[n]%p);

}

BZOJ 4228 Tibbar的後花園

傳送門 求 nn n 個帶標號的點能滿足如下條件的無向圖個數 不存在重邊和自環。不存在三個點 a,b c a,b,c a,b,c,使三個點距離兩兩相等。輸出答案對 1004535809 1004535809 100453 5809 479 2 21 1479 times2 1 479 22 1 1,...

BZOJ 4228 Tibbar的後花園

please contact lydsy2012 163.com 警告 解題思路 可以證明最終的圖中所有點的度數都 3 且不存在環長是 3 的倍數的環。這是充分必要的,由於圖不聯通,其就是由若干個聯通塊組成的,每個聯通塊是一條鏈或者環長不是 3 的倍數的環,然後強上egf就好了。列出鏈的egf和環的...

小易的後花園

這個部落格執行一年多以來,感覺蠻好的,超過我當時的期望值。以此部落格作為紀念,繼續續寫理性沉澱。小易的後花園 我想取名 小易的後花園 於兩點。後 表示這是我個人背後的乙個地方,從我的表面你是看不出有這個乙個花園的。而這個地方對於我外在的表現卻十分重要。花園 源於每次進入這個部落格的首頁都會看到我之前...