一般樹形dp是先進行dfs,搜尋到最深層的狀態,然後再慢慢的回溯過來,把後面的狀態一路繼承過來,再更新父節點的答案
一般關於節點擊取的題型狀態轉移方程:
這種適用于父節點擊時,子節點不能選的情況,記得最後加上當前節點本身的價值
這種適用于父節點不選時,子節點必須選的情況
3.適用於當節點x進行某種操作時,f[x]用來儲存進行這種操作下的兩種狀態的價值
反正一般就是先進行dfs,在回溯過程中進行操作,繼承子節點的狀態,用來更新當前父節點的狀態,暫時還沒碰到樹形dp的其他題型題目,目前就這麼多,還會有後續更新!
樹形dp總結
from 列出一些經典問題吧 1 給出一棵樹 每個節點有權值 要求父節點和子節點不能同時取 求能夠取得的最大值 hdu1520 2 給出一棵樹,求離每個節點最遠的點的距離 hdu2196 3 1 在乙個地圖上,有n座城堡,每座城堡都有一定的寶物,在每次遊戲中允許攻克m個城堡並獲得裡面的寶物。但由於地...
樹形dp總結
這個月一直搞dp了,狀壓,數字,樹形,感覺雖然有時訓練很辛苦,但真的很充實。這個星期看了一些樹形dp的資料。樹形dp簡單來說就是在樹上的dp,這裡的很多題,都和揹包有聯絡,從乙個根節點開始,分配方案給它的子樹。有乙個很有意思的題。沒有上司的聚會 hdu 1520 大致題意就是說,要舉辦乙個聚會,每個...
樹形DP總結
換根 fat結點更新u結點子結點 dp fat ans fat max dp u 0 老方法 更新根節點 ans u dp u max dp fat 0 第一次dfs 回溯時處理子結點為u向下的簡單路徑第一大和第二大 第二次dfs 遞迴處理子結點為u向上的簡單路徑最大 const int n 5e5...