沒有上司的舞會

2021-07-27 03:41:45 字數 1227 閱讀 9616

ural大學有 n 個職員,編號為 1~n 。他們有從屬關係,也就是說他們的關係就像一棵以校長為根的樹,父結點就是子結點的直接上司。每個職員有乙個快樂指數。現在有個周年慶宴會,要求與會職員的快樂指數最大。但是,沒有職員願和直接上司一起與會。

第一行乙個整數n。(1<=n<=6000)

接下來n行,第i+1行表示i號職員的快樂指數ri。(-128<=ri<=127)

接下來n-1行,每行輸入一對整數l,k。表示k是l的直接上司。

最後一行輸入0,0。

輸出最大的快樂指數。

7

1 1

1 1

1 1

1 1 3

2 3

6 4

7 4

4 5

3 5

0 0

這是一道經典的樹形dp題,所以我才第乙個做了它。

亮點就在於變長陣列vector,他可以不用擔心樹的長度,很好用;

在這裡尤其適用;

水平有限,只實現了記憶化搜尋,轉動歸懶得寫了;

#include

#include

#include

#include

using

namespace

std;

int n, a,b,dp[100005][3],i,a[100005];

bool du[100005];

vector

ch[100005];//這就是變長陣列了

int dfs(int pos,int ok)

if(ok)//如果ok,也就是其父是否被選為真;那麼其子就可選;此點不可選;

if(!ok)//如果!ok,也就是其父是否被選為假;那麼當前節點可以選也可不選

return dp[pos][ok];

}int main()

for(i=1;i<=n;i++)

if(du[i]==0) break;

cout

<0);

return

0;}

沒有上司的舞會

題目描述 description ural大學有n個職員,編號為1 n。他們有從屬關係,也就是說他們的關係就像一棵以校長為根的樹,父結點就是子結點的直接上司。每個職員有乙個快樂指數。現在有個周年慶宴會,要求與會職員的快樂指數最大。但是,沒有職員願和直接上司一起與會。輸入描述 input descri...

沒有上司的舞會

某大學有n個職員,編號為1 n。他們之間有從屬關係,也就是說他們的關係就像一棵以校長為根的樹,父結點就是子結點的直接上司。現在有個周年慶宴會,宴會每邀請來乙個職員都會增加一定的快樂指數ri,但是呢,如果某個職員的上司來參加舞會了,那麼這個職員就無論如何也不肯來參加舞會了。所以,請你程式設計計算,邀請...

沒有上司的舞會

題目描述 某大學有n個職員,編號為1 n。他們之間有從屬關係,也就是說他們的關係就像一棵以校長為根的樹,父結點就是子結點的直接上司。現在有個周年慶宴會,宴會每邀請來乙個職員都會增加一定的快樂指數ri,但是呢,如果某個職員的上司來參加舞會了,那麼這個職員就無論如何也不肯來參加舞會了。所以,請你程式設計...