P1352 沒有上司的舞會

2021-09-24 20:47:22 字數 1015 閱讀 3510

題目描述

某大學有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: 複製71

1111

111 32 3

6 47 4

4 53 5

0 0樹形dp

#include

#include

#include

#include

#include

#include

using

namespace std;

int n,u,v,root,f[

6005][

2];bool b[

6005];

struct cyq

a[6005];

void

dfs(

int x)

}int

main()

for(

int i=

1;i<=n;i++)if

(b[i]==0

)dfs

(root)

;printf

("%d\n"

,max

(f[root][0

],f[root][1

]));

return0;

}

P1352 沒有上司的舞會

原題鏈結 樹形dp入門 dp方程搞錯了居然還過了90 利用dfs遞迴求解 每個點分為選和不選兩種情況 假設選為1不選為0 dp x 0 max dp num i 1 dp num i 0 這裡一開始寫成了dp num i 1 但它的兒子的兩種狀態實際上都是可選的 dp x 1 dp num i 0 ...

P1352 沒有上司的舞會

題目 p1352 沒有上司的舞會 演算法標籤 dp,搜尋,樹形結構,記憶化搜尋 從樹的頭往下求結果會有後效性,且有多個葉子節點,資料不易處理 則採用,葉子節點往頭部求結果 對於某一節點,有選擇和不選擇兩種情況 1 不選擇的話 記 dp 0 for int i 0 i a x tail.size i ...

P1352 沒有上司的舞會

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