清華集訓2017 生成樹計數
題意:
給定
n個連通塊,每個連通塊的大小為
ai,接下來依次連
n−1條邊,得到的樹
T的價值定義為:
val(T)=(i=1∏ndim)(i=1∑ndim)
其中,
di表示與第
i個連通塊連線的邊的條數。請求出所有不同連邊方式產生的樹的價值和膜
998244353.
n≤30,000,m≤30
前置技能:求數列 k次方和。
給定
k,對於任意的
0≤t≤k,求出
i=1∑nait。
k,n≤105
考慮答案的生成函式
F(x)=t=0∑kxti=1∑nait=i=1∑n1−xai1.
直接計算仍然是不行的,注意到
ln′(1−aix)=1−aix−ai=−t=0∑∞(aix)tai
因此考慮先計算
G(x)=−t=0∑kxti=1∑nait+1,則
F(x)=−xG(x)+n。化簡
G(x):
G(x)=i=1∑nln′(1−aix)=ln′(i=1∏n(1−aix))
括號內的東西分治NTT即可,然後多項式求ln再求導,即可得到
F(x)。
過程
對於每個終方案
T,對答案的貢獻為
i=1∏naididimi=1∑ndim。
由於出現了度數,我們考慮使用prufer序列化簡算式。總貢獻等價於:
相關推薦
清華集訓2017 生成樹計數
題意: 給定 n n n個連通塊,每個連通塊的大小為
【LOJ】#2320. 「清華集訓 2017」生成樹計數
rac res 然而 除了 加法 wap OS 代碼 reg 題解 我,理解題解,用了一天 我,卡常數,又用了一天 到了最後,我才發現,我有個加法取模,寫的是while(c >= MOD) c -= MOD 我把while改成if,時間,少了 六倍。 六倍。 六倍!!
【LOJ2320】「清華集訓 2017」生成樹計數
【題目連結】【思路要點】連上\(a_i\)的限制,題目要求的實際上是\(\sum_{T}\prod_{i=1}^{N}a_i^{d_i}*d_i^{M}\sum_{i=1}^{N}d_i^{M}\)。我們知道樹的Prufer序列與樹點的度數密切相關,因此考慮使用Prufer序
uva10766生成樹計數
als mes art 算子 技術分享 math 個數 main mat 此類題是給定一個無向圖,求所有生成樹的個數,生成樹計數要用到Matrix-Tree定理(Kirchhoff矩陣-樹定理) G的度數矩陣D[G]是一個n*n的矩陣,並且滿足:當i≠j時,dij=0;當i
hdu4305生成樹計數
open assert with for def com false tor == 先預處理出距離,然後判斷是否可行,要註意判斷是否在一條直線上時判斷是在兩側還是一邊(wa了四次) double型數據 #include<map> #include<se
清華集訓2017遊記
省選 訓練 0ms 經驗 狀態 操作 logs 上下 繼續 Day0 報到日 火車上膜了一發附中大佬 試機時感覺機房很熱,頭腦很不清醒 晚上和cjl,xjt一起吃火鍋,等了半天,感覺有毒 Day1 水落在酒店餐廳了,幸好賽場發水 賽前松爺在群裏發了一句GL & HF
生成樹計數及應用 Matrix-Tree
log blog 生成樹計數 mathjax 插值 tps 生成樹 www. 應用 例:給定一個圖,圖上每條邊是紅色或藍色,求恰有 k 條紅邊的生成樹個數. n≤50. Matrix-Tree定理,對於限制條件可以利用多項式,把紅邊邊權設為 X,藍邊為1. 最後求行列式得到
[BZOJ1494]生成樹計數
cto operator 個數 最後一行 判斷 state for break desc [BZOJ1494] [NOI2007]生成樹計數 Description 最近,小棟在無向連通圖的生成樹個數計算方面有了驚人的進展,他發現:·n個結點的環的生成樹個數為n。·n個結點
bzoj1494 生成樹計數 (dp+矩陣快速冪)
sets 增加 set 基本 表示 2種 least 欺詐 main 題面欺詐系列... 因為一個點最多只能連到前k個點,所以只有當前的連續k個點的連通情況是對接下來的求解有用的 那麽就可以計算k個點的所有連通情況,dfs以下發現k=5的時候有52種。 我們把它們用類似於並
BZOJ.5120.[清華集訓2017]無限之環(費用流SPFA 黑白染色)
emp ons 容易 swap etc geo break res 得到 題目鏈接 https://loj.ac/problem/2321 https://www.luogu.org/problemnew/show/P4003 容易想到最小費用最大流分配度數。 因為水管形態
【LOJ2322】「清華集訓 2017」Hello world!
【題目連結】 點選開啟連結 【思路要點】 一個 1
【LOJ2328】「清華集訓 2017」避難所
【題目連結】 點選開啟連結 【思路要點】 令 x
【LOJ2326】「清華集訓 2017」簡單資料結構
【題目連結】 點選開啟連結 【思路要點】 注意到答案是 O
【LOJ2323】「清華集訓 2017」小 Y 和地鐵
【題目連結】 點選開啟連結 【思路要點】 很不錯的腦洞題。 附上官方題解。 時間複雜度 O
【LOJ2324】「清華集訓 2017」小 Y 和二叉樹
【題目連結】 點選開啟連結 【思路要點】 答案的第一位一定是編號最小的度數不為 3
【LOJ2329】「清華集訓 2017」我的生命已如風中殘燭
【題目連結】 點選開啟連結 【思路要點】 一個直觀的思路是模擬該過程,當路上遇到環的時候通過類似取模的手段加速。 注意到每繞一個環
【LOJ2331】「清華集訓 2017」某位歌姬的故事
【題目連結】 點選開啟連結 【思路要點】 注意到若一個位置被兩種音高 a
【LOJ2330】「清華集訓 2017」榕樹之心
【題目連結】 點選開啟連結 【思路要點】 首先,樹是二分圖,只有一側的點可能成為心。 維護每一棵子樹會產生的向下推動的次數可能的最大值
【LOJ2327】「清華集訓 2017」福若格斯
【題目連結】 點選開啟連結 【思路要點】 M
[生成樹計數]
prufer序列 每個prufer序列對應一棵唯一的樹。 生成:得到一棵樹的prufer序列的方法是依次去掉編號最小的葉子節點(也就是度數為1的點),然後將這個點的父親加入佇列。直到剩下最後兩個點。這樣就可以得到一個長度為n的prufer序列。 根據prufer序列的生成方式可以得到:每個節點會在pru