**:
邱老師玩遊戲
time limit: 20 sec
memory limit: 256 mb
題目連線
description
邱老師最近在玩一種戰略遊戲,在乙個地圖上,有n座城堡,每座城堡都有一定的寶物,在每次遊戲中邱老師允許攻克m個城堡並獲得裡面的寶物。
但由於地理位置原因,有些城堡不能直接攻克,要攻克這些城堡必須先攻克其他某乙個特定的城堡。你能幫邱老師算出要獲得盡量多的寶物應該攻克哪m個城堡嗎?
input
每個測試例項首先包括2個整數,n,m.(1 <= m <= n <= 200);
在接下來的n行裡,每行包括2個整數,a,b.
在第 i 行,a 代表要攻克第 i 個城堡必須先攻克第 a 個城堡,如果 a = 0 則代表可以直接攻克第 i 個城堡。b 代表第 i 個城堡的寶物數量, b >= 0。
當n = 0, m = 0輸入結束。
output
對於每個測試例項,輸出乙個整數,代表邱老師攻克m個城堡所獲得的最多寶物的數量。
sample input
3 2
0 1
0 2
0 3
7 4
2 2
0 1
0 4
2 1
7 1
7 6
2 2
0 0sample output
5 13
分析:其實就是冬季賽的樹的揹包的題目。
vector
q[205];
long
long dp[205][205];
int vis[205];
int b[205];
int n,m;
void dfs(int x)
dfs(0);
printf("%lld\n",dp[0][m]);
}}
cdoj 1136 邱老師玩遊戲 樹形揹包
time limit 20 sec memory limit 256 mb 邱老師最近在玩一種戰略遊戲,在乙個地圖上,有n座城堡,每座城堡都有一定的寶物,在每次遊戲中邱老師允許攻克m個城堡並獲得裡面的寶物。但由於地理位置原因,有些城堡不能直接攻克,要攻克這些城堡必須先攻克其他某乙個特定的城堡。你能幫...
cdoj 1136 邱老師玩遊戲 樹形揹包
time limit 20 sec memory limit 256 mb 邱老師最近在玩一種戰略遊戲,在乙個地圖上,有n座城堡,每座城堡都有一定的寶物,在每次遊戲中邱老師允許攻克m個城堡並獲得裡面的寶物。但由於地理位置原因,有些城堡不能直接攻克,要攻克這些城堡必須先攻克其他某乙個特定的城堡。你能幫...
CDOJ 1136 樹形01揹包
dp u i 表示在以u為根節點的子樹上,選i個物品的最大價值。然後轉移方程就是dp u j max dp u j dp u j k dp v k 就是他可以從當前已更新的部分選j k個,然後在要更新的那個兒子節點那裡選k個,v是當前更新到的子節點,這樣把k從1到j 1掃一遍,就把這個子節點更新了。...