CDOJ 1136 樹形01揹包

2021-07-30 23:01:50 字數 575 閱讀 7309

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

#include

using

namespace

std;

const

int maxn=205;

const

int maxm=205;

struct nodee[maxm];

int head[maxn],tot;

int n,m;

int v[maxn],dp[maxn][maxn];

void add(int u,int v)

void init()

void dfs(int x)

dfs(0);

printf("%d\n",dp[0][m]);

}return

0;}

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

邱老師玩遊戲 time limit 20 sec memory limit 256 mb 題目連線 description 邱老師最近在玩一種戰略遊戲,在乙個地圖上,有n座城堡,每座城堡都有一定的寶物,在每次遊戲中邱老師允許攻克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個城堡並獲得裡面的寶物。但由於地理位置原因,有些城堡不能直接攻克,要攻克這些城堡必須先攻克其他某乙個特定的城堡。你能幫...