CF1111E Tree 題解
阿新 • • 發佈:2021-10-11
Link.
Description.
給定一棵樹,每次選擇 \(k\) 個點,問把這 \(k\) 個點分成不超過 \(m\) 個集合,滿足
- 不存在兩個節點屬於同一個集合,它們之間存在祖先後代關係。
集合和集合之間本質不相同。
\(\sum k\le 10^5,1\le m\le 300\)
Solution.
虛樹,變成有 \(k\) 個標記點然後劃分成 \(m\) 個集合。
然後接下來大概率是一個 \(O(nm)\) 複雜度的 dp
。
發現如果設狀態為 當前到 \(x\) 分成了 \(k\) 個集合 很難轉移。
可以直接設為 當前到 \(x\) 分成 \(k\)
於是就有 \(dp_{x,k}=\prod_{y\in\text{son}(x)}dp_{y,k}\),因為每次只能相對應的合併。
如果當前這個點是標記點,則有 \(dp'_{x,k}=k\cdot dp_{x,k-1}\),是選擇一個盒子放當前的根。
然後再從這個考慮如何求答案,設分成 \(m\) 個集合答案是 \(f\)。
容斥後則有 \(f_k=\sum_{i=0}^k(-1)^i\dbinom{k}{i}dp_{k-i}\)。
Coding.
大 shit 題,懶得寫,咕咕咕