HDU 5290 Bombing plan 樹形dp

題目鏈接

題意
給定n個點的樹,每個點有一個點權wi, 每次選一個點u,則樹上u和距離u wi範圍內的所有點都會被染色。
問:最少選幾個點使得n個點都被染色。
思路:樹形dp
對於某個點u
down[u][j] 表示u以及u向下深度爲 j 的點沒有被染色的最小花費。
up[u][j] 表示u以及u向上距離爲j的點已經被染色的最小花費。
設u點的兒子們爲v, v2, v3 ···,每個點點權爲w[]數組
3種轉移:
1、對於down[u][i] 顯然就是子樹的down數組求和,特殊一點就是down[u][0](含義爲u的子樹中 除了u沒有被染色,別的點都染色的最小花費,所以是sigma(up[v][0]) )
2、如果選u點,則顯然答案爲 1 + sigma(down[v][ w[u]-1 ]) ,更新給up[u][w[u]]
3、如果不選u點,則從某個兒子的up數組更新過來答案爲 up[v][j] + (down[u][ j-1 ]-down[v][j-2])
最後保持up 和 down的單調性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章