cdoj 1136 邱老師玩遊戲 樹形揹包

2021-08-11 14:43:07 字數 991 閱讀 2947

**:

邱老師玩遊戲

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掃一遍,就把這個子節點更新了。...