樹形DP 打家劫舍3

2021-10-08 17:19:47 字數 713 閱讀 4312

每個節點有選和不選兩種狀態,若選,則其孩子節點不可選,若該節點不選,則孩子節點可選也可不選

設dp[u][0]表示不選當前結點u的情況下以u為根的子樹所能得到得最大價值

dp[u][1]表示選當前結點u的情況下以u為根的子樹所能得到得最大價值

設v為其孩子節點

使用pair儲存選或不選兩種情況的值,通過dfs求解

class

solution;}

auto left_pair =

dfs(root-

>left)

;auto right_pair =

dfs(root-

>right)

;return;}

introb

(treenode* root)

};

樹形DP 樹形DP四例

是時候練一下dp了!我的題單 portkey f u,if fu,i 表示以u uu為根節點的子樹中保留i ii條樹枝的最大蘋果數 f u,i max f max f fu,i max這些題是菜,但也不能輕視啊!include using namespace std define in read i...

打家劫舍 dp問題

param nums return param nums return 假設打劫前i家能偷到的最大錢數為f i 第i家有的錢數為nums i 則有以下公式 當i為1時 f i nums i 當i為2時 f i max nums i nums i 1 當i大於2時 f i max nums i 1 n...

打家劫舍系列DP之打家劫舍II

你是乙個專業的小偷,計畫偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味著第乙個房屋和最後乙個房屋是緊挨著的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。給定乙個代表每個房屋存放金額的非負整數陣列,計算你在不觸動警報裝...