我們已經知道了\(f_i\)表示不一定需要聯通的\(i\)節點的dag方案,考慮合併
參考【題解】p4841 城市規劃(指數型母函式+多項式ln),然後答案\(h_i\)母函式\(h(x)\)就這樣解
由於\[h(x)=\sum_^ \dfrac \]則
\[h(x)=e^
\]球\(\ln\)就是iv,不求的話可以直接手動模擬\(f(x)^i/i!\)
//@winlere
#include#include#include#includeusing namespace std; typedef long long ll;
inline int qr()
const int maxn=5e3+5;
const int mod=10007;
int c[maxn][maxn];
int dp[maxn];
int f[maxn];
int bin[maxn*maxn];
int main()
}for(register int t=1;t<=n*n;++t) bin[t]=(bin[t-1]<<1)%mod;
for(register int t=1;t<=n;++t)
}for(register int t=1;t<=n;++t)
printf("%d\n",f[n]);
return 0;
}
題解 有標號的DAG計數1
設 f i 為 i 個點時的dag圖,不必聯通 考慮如何轉移,由於乙個dag必然有至少乙個出度為 0 的點,所以我們欽定多少個出度為 0 的點轉移。考慮如何保證沒有環,欽定完出度為 0 的點後,這些點就等著被連線了。還剩下一些點,這些點只要不構成環就好了,就是個子結構,訪問以前的dp陣列就好了。2 ...
有標號的DAG計數I IV
最近心血來潮來寫一寫這個玩意兒。請特別注意定義生成函式時下標的起始位置。求 n 點帶標號 dag 的數量模 10007 n le5000 資料範圍顯然 o n 2 設 f i 表示答案,列舉 dag 中入度為零的點的數量 j 方案數為 binom ij 將圖拆成兩個部分,前 j 個點向後 i j 個...
有標號的DAG計數 II
給定一正整數n,對n個點有標號的有向無環圖 可以不連通 進行計數,輸出答案mod 998244353的結果 考慮 o n 2 dp 列舉出度為 0 的點,構成的新 dag 方案數為 f i f i 1 c 2 即從 n 個點中選出乙個點,作為出度為 0 的點,然後剩下 n 1 個點向這個點任意連邊 ...