Problem
給一個 N 個點的樹圖,在點上放置植物保護所有的邊,每個點上最多放置一個植物,請問最少花費為何?
- 綠豆槍手:花費 100 元,保護相鄰一條邊。
- 分裂碗豆:花費 175 元,保護相鄰兩條邊。
- 楊桃:花費 500 元,保護相鄰所有邊。
Sample Input
|
|
Sample Output
|
|
Solution
將樹轉換成有根樹,對於每一個 node 當成 tree 去做考慮。
狀態 dp[node][1:protect edge from parent, 0:none]
以 node 以下作為一個 subtree 的最少花費,並且是否已經保護通往父親的邊。
效率 O(n)
。
|
|