1. 程式人生 > 實用技巧 >[Contest on 2020.11.23] 小A的樹

[Contest on 2020.11.23] 小A的樹

\(\text{Description}\)

傳送門

\(\text{Solution}\)

我的我要爆了!

有一個結論:整棵樹選 \(x\) 個點的連通子圖黑點數目最小值/最大值分別為 \(\min,\max\),那麼在 \([\min,\max]\) 中的 \(y\) 值都是可以選取的。

考慮我們從最小值的狀態往最大值的狀態慢慢挪動,每次刪一個點加一個點,只可能有一個黑點的變化,那如果想要挪過去,顯然每一種黑點數都是存在的。

所以就大力用樹形揹包算整棵樹選 \(x\) 個點的連通子圖黑點數目最小值/最大值就行了。

複雜度 \(\mathcal O(n^2)\)

\(\text{Ad}\)

樹形揹包複雜度證明