動態規劃 樹上dp 1757 蒐集鑽石

2022-08-11 08:09:07 字數 1113 閱讀 9599

2020-04-08 08:05:15

問題描述:

蒜國有n座城市,編號從1n,城市間有n−1條道路,且保證任意兩座城市之間是連通的。每一座城市有一定數量的鑽石。

蒜頭君想在蒜國蒐集鑽石。他從城市1出發,每天他可以通過城市之間道路開車到另外的城市。當蒜頭第一次到乙個城市的時候,他可以蒐集完這個城市的所有鑽石,如果他後面再來到這個城市,就沒有磚石可以收集了。

蒜頭君只有k天時間,請你幫算蒜頭君計算他最多可以蒐集多少鑽石。

num表示每個城市的鑽石數量,mp表示城市所有的道路。

樣例

樣例 1:

輸入: n=3,k=2,num=[3,8,3],mp=[[1,3],[3,2]]

輸出: 14

解釋:他能得到所有的鑽石

樣例 2:

輸入: n=6,k=2,num=[5,9,8,4,9,2],mp=[[1,6],[6,2],[2,5],[5,3],[5,4]]

輸出: 16

解釋:他可以得到第1、2、6個城市中的鑽石

注意事項

問題求解:

int m;

int nums;

int dp = new int[210][210][2];

list graph;

void dfs(int fa,int u)

for(int i=0;i=1;j--)

dp[u][j][0]=math.max(dp[u][j][0],dp[u][e][1]+dp[v][j-e-1][0]);//後面的不回來}}

}}

public int getcount(int n, int k, int num, int mp)

dfs(-1, 1);

return dp[1][m][0];

}

動態規劃 樹上揹包

題意 每個頂點有兩個權值b和w。最多3000個節點的樹,分成恰好m個非空的連通塊,使得盡可能多的連通塊滿足w的和嚴格大於b的和。樹上揹包的套路題,這裡揹包 dp i j 表示以i為根的子樹,已經劃分了 j 個連通塊,包括根節點在內的最後乙個連通塊沒有劃分,能取到的最優值。這一題最優值看起來有兩維,但...

動態規劃 dp

威威貓系列故事 打地鼠 威威貓最近不務正業,每天沉迷於遊戲 打地鼠 每當朋友們勸他別太著迷遊戲,應該好好工作的時候,他總是說,我是威威貓,貓打老鼠就是我的工作!無話可說.我們知道,打地鼠是一款經典小遊戲,規則很簡單 每隔乙個時間段就會從地下冒出乙隻或多隻地鼠,玩遊戲的人要做的就是打地鼠。假設 1 每...

動態規劃,dp

線性動規區間動規樹形動規 區間動規 根據題目要求,全域性最優滿足區域性最優 典型題例 加分二叉樹 洛谷1040 題目介紹 題目描述 設乙個n 個節點的二叉樹t 的中序遍歷為 1,2,3,n 其中數字 1,2,3,n 為節點編號。每個節點都有乙個分數 均為正整數 記第j 個節點的分數為dj。二叉樹t ...