ural大學有n個職員,編號為1~n。他們有從屬關係,也就是說他們的關係就像一棵以校長為根的樹,父結點就是子結點的直接上司。每個職員有乙個快樂指數。現在有個周年慶宴會,要求與會職員的快樂指數最大。但是,沒有職員願和直接上司一起參加宴會。
第一行乙個整數n。(1≤n≤6000)
接下來n行,第i+1行表示i號職員的快樂指數ri。(-128≤ri≤127)
接下來n-1行,每行輸入一對整數l,k。表示k是l的直接上司。
最後一行輸入0,0。
第1行:輸出最大的快樂指數。
樣例輸入
711
1111
11 3
2 36 4
7 44 5
3 5
樣例輸出5
我們定義一下dp[i][0]表示以i為根的子樹的最大氣氛值,且i不參加
dp[i][1]表示以i為根的子樹的最大氣氛值,且i參加
對於每乙個人來說,他參加的前提是他的直接上司不參加,換句話說,對於每個人來說,他參加的前提是每乙個直接下屬不參加;
所以其中son表示該節點的子節點;
#include
#define max(x,y) x>y?x:y
using
namespace std;
vector<
int> v[
6005];
int a[
6005]=
;int dp[
6005][
2]=;
int n,sum;
int f[
6005]=
;voiddp(
int x)
}int
main()
for(
int i=
1;i)for
(int i=
1;i<=n;i++)}
dp(sum)
;printf
("%d"
,max
(dp[sum][1
],dp[sum][0
]));
return0;
}
To Heart 題解 沒有上司的舞會
ural大學有n個職員,編號為1 n。他們有從屬關係,也就是說他們的關係就像一棵以校長為根的樹,父結點就是子結點的直接上司。每個職員有乙個快樂指數。現在有個周年慶宴會,要求與會職員的快樂指數最大。但是,沒有職員願和直接上司一起參加宴會。第一行乙個整數n。1 n 6000 接下來n行,第i 1行表示i...
LuoguP1352 FJSC 沒有上司的舞會
現在你有一棵樹,每乙個點有乙個點權 r i 如果選擇了 i 點,那麼 i 子樹上的所有的點都不能選,現在要求選擇若干個點,使得點權和最大。設 dp i 1 為選擇 i 點的 i 子樹的最大點權和,dp i 0 為不選擇 i 點的 i 子樹的最大點權和,那麼我們知道初始化為 dp i 0 sum ma...
題解 沒有上司的舞會
5401 沒有上司的舞會 動態規劃 例題 5401 沒有上司的舞會 我是萌新 剛學oi,請問這道樹上dp怎麼做?太難了不會啊 看了題解才會的。dp i,1 0 表示.算了太難了講不清楚.不會怎麼dfs,只會常數記憶體都更小的bfs,球大神教我 winlere include include incl...