2024.7.9 鮮花
頭ン痛 - feat. 重音テト
我沒找到 QaQ
prufer 序列,簡單來說就是 \(n\) 個節點的樹雙射一個長度 \(n-2\) 值域 \([1,n]\) 的序列。
構造過程就是每次刪一個編號最小葉子,記錄其父節點。
本圖來自baoziwu2,侵刪

顯然堆 \(n\log n\) 可做,也可以掃一遍所有標號,對于已經刪除的父節點,判斷其度數和標號是否該選,分討可做 \(O(n)\)
然后有定理:
\(k\) 個點完全圖有 \(k^{k-2}\) 棵生成樹。
\(n\) 個點的圖有 \(k\) 個聯通塊,第 \(i\) 個聯通塊點數為 \(s_i\) ,添加 \(k-1\) 條邊使其聯通,有 \(n^{k-2}\times \prod\limits_{i=1}^ks_i\) 種方案。
證明可以考慮縮點后為生成樹,考慮每個聯通塊內的點個數,可以得到。
updata:找到板子了 CF156D
簡要題解
首先將至多容斥成至少,然后考慮可以先求出有 \(m+1\) 個連通塊的個數,可以 dp,在加 \(m\) 條邊聯通,乘上 \(n^{k-2}\times \prod\limits_{i=1}^ks_i\) 即可。
直接 \(DP\) 是 \(n^3\),可以用多項式優化到 \(n^2\log n\),但我不會
圖——from STA_Morlin 為什么不讓折疊捏???

本文來自博客園,作者:xrlong,轉載請注明原文鏈接:http://www.rzrgm.cn/xrlong/p/18291012
版權聲明:本作品采用 「署名-非商業性使用-相同方式共享 4.0 國際」許可協議(CC BY-NC-SA 4.0) 進行許可。

題圖 from 匿名
浙公網安備 33010602011771號