樹形DP總結

2021-10-03 20:52:02 字數 537 閱讀 6330

換根

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+5;

vectorint,

int>

>g[n]

;int dp[n][3

],pot[n]

;void

dfs(

int u,

int fat)

else

if(dp[u][1

]]+cost)

dp[u][1

]=dp[v][0

]+cost;}}

void

dfs1

(int u,

int fat)

}

樹形dp總結

from 列出一些經典問題吧 1 給出一棵樹 每個節點有權值 要求父節點和子節點不能同時取 求能夠取得的最大值 hdu1520 2 給出一棵樹,求離每個節點最遠的點的距離 hdu2196 3 1 在乙個地圖上,有n座城堡,每座城堡都有一定的寶物,在每次遊戲中允許攻克m個城堡並獲得裡面的寶物。但由於地...

樹形dp總結

這個月一直搞dp了,狀壓,數字,樹形,感覺雖然有時訓練很辛苦,但真的很充實。這個星期看了一些樹形dp的資料。樹形dp簡單來說就是在樹上的dp,這裡的很多題,都和揹包有聯絡,從乙個根節點開始,分配方案給它的子樹。有乙個很有意思的題。沒有上司的聚會 hdu 1520 大致題意就是說,要舉辦乙個聚會,每個...

樹形DP簡單總結

樹的特徵 1.n個點 只有n 1條邊的無向圖 2.無向圖里 任意兩點有且只有一條路 3.乙個點只有乙個前驅 但可以有多個後繼 4.無向圖沒有環 樹形dp 由於樹有著天然的遞迴結構 父子結構 而且它作為一種特殊的圖 可以描述許多複雜的資訊 因此在樹就成了一種很適合dp的框架 問題 給你一棵樹 要求用最...