樹形DP 洛谷1352 沒有上司的舞會

2021-08-19 15:22:42 字數 891 閱讀 8441

題目:

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

輸入格式:

第一行乙個整數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 50 0

輸出樣例#1:

5

這道題是最基礎的樹形dp,運用了新新工具vector(以前從來沒用過)

首先你要找到最上司(沒有上司的那個人是大boss喲),然後分類討論(數學學多了)

f[i][0]表示這個人不去舞會 反之則去

**如下:

//by christall

#include#include#include#include#define maxn 6010

using namespace std;

vectordown[maxn];

int n,ri[maxn],f[maxn][2],boss;

int p[maxn];

void dfs(int x)

{ f[x][0]=0,f[x][1]=ri[x];

for(int i=0;i

洛谷P1352 沒有上司的舞會(樹形DP)

傳送門 難度普及 提高 poj傳送門 該題是一道經典的樹形dp入門題目。indegree 入度陣列,用於找根 boss x 父結點 y 子結點 include include include using namespace std const int n 6005 int dp n 2 動態規劃陣列...

洛谷P1352 沒有上司的舞會(樹形DP)

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

洛谷 P1352 沒有上司的舞會(樹形DP)

設dp i 0 1 dp i 0 表示不選第i個職工的最大值,dp i 1 表示選第i個職工的最大值。轉移 如果不選第i個職工,那麼他的下屬可選可不選,即dp i 0 max dp j 0 dp j 1 如果選第i個職工,那麼他的下屬一定不能選,即dp i 1 dp j 0 ac 1 include...