好題 樹形dp 換根 A 巨木之森

2021-10-09 10:36:23 字數 413 閱讀 1766

傳送門:

這題大概是我做的第一道換根dp的題目吧。其實還是挺容易的

題目大意:就是對於每個點,求以這個點為起點遍歷完全圖的最小代價.

思路:首先一點:若要求回到起點,那麼代價就是 [邊權累和 *  2].不要求回到起點,等價於我們選擇一條路徑。這路徑上的權值都只加一遍.其他邊還是加兩遍。

那麼我們肯定是選擇離這個點最遠的點作為最後路徑。那麼問題就轉換成了問題hdu2196.求樹上離每個點最遠的點的距離。

我的思路:

1.先第一遍dfs求每個點子樹內的答案.

2.第二遍dfs的時候,從父節點傳乙個值下來。然後將(以每個孩子為子樹的最遠距離 + w[i] , 孩子編號 )以二元組的形式存下來。降序排序。然後往孩子轉移的時候貪心優先選 first盡量大且second != v[i]的價值給孩子. 

樹形 dp 換根 dp

樹形dp 樹形動歸一般是依賴於dfs的,根據動歸的後效性,父節點的狀態一般都依賴子節點的狀態以某種方式轉移而來 換根的p2015 設f i j 表示i的子樹上保留j條邊最多蘋果數 p2279 狀態表示f x 0 覆蓋到x的爺爺和x整棵子樹 向上2層 最少個數 f x 1 覆蓋到x的父親和x子樹 向上...

樹形DP 換根DP

某些樹形dp問題中,我們要求的值是類似 以當前節點為根節點得到的答案 卻沒有給出固定的根節點,若仍然按照常規的樹形dp思路對每個點進行dp,我們對每乙個節點均進行一次 dfs 最後的複雜度是 o left n 2 right 如果我們先假設任意乙個點為根進行 dp,求出當前樹形結構下以每個點為根的子...

樹形dp之換根dp

樹形dp之換根dp 換根dp是樹形dp這一類中我覺得比較難的一類。一般的樹形dp都只需要從子樹往父親推,然而換根dp則需要從父親往子樹推,接下來寫寫我學習換根dp的幾個例題。例題1 computer 題目大意 給你一棵樹,然後問你每乙個點具體其他點最遠的距離是多少。解題 這個題目首先任意找乙個點為根...