To Heart 總結 樹形DP

2022-09-18 10:33:30 字數 476 閱讀 9877

今天,帶大家來看一下樹形dp

樹形dp,顧名思義,則是在樹上做d動態規劃:

在樹上設計動態規劃演算法時,一般就以節點從深到淺(子樹從小到大)的順序作為dp的階段。dp的狀態表示中,第一維通常是節點編號(代表以該節點為根的子樹)。大多數時候,我們採用遞迴的方式實現樹形動態規劃。對於每個節點x,先遞迴在它的每個子節點上進行dp,在回溯時,從子節點節點x進行狀態轉移。

廢話有點多,因為這種定義性的問題十分抽象,所以咱們來點兒有實際意義的比如來些題

最大獨立子集的定義是,對於乙個樹形結構,所有的孩子和他們的父親存在排斥,也就是如果選取了某個節點,那麼會導致不能選取這個節點的所有孩子節點。一般詢問是要求給出當前這顆樹的最大獨立子集的大小(被選擇的節點個數)。

例題;

樹形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...