沒有上司的舞會 樹形dp入門

2021-09-14 04:35:06 字數 1336 閱讀 9588

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

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

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

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

最後一行輸入0 0

輸出最大的快樂指數。

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

時空限制 1000ms / 128mb輸入樣例#1:

711

1111

11 3

2 36 4

7 44 5

3 50 0

這道題我們會發現,乙個人是否能參加與他的 直接上司有關,我們可以將上司是否參加作為二維dp的第一維,我們可以先找出沒有上司的人,也就是boss,再進行遞迴搜尋,每次遞迴完成時我們保留當前根節點參加時的最大快樂值,和不參加時的最大快樂值最後我們比較一下boss來和boss不來的大小然後輸出。

當然我覺得沒有boss才是最快樂的

;//son陣列用來存子樹

inline

intmax

(int x,

int y)

voiddp(

int x)

}int

main()

int root;

for(

int i =

1; i <= n;

++i)}dp

(root)

;printf

("%d\n"

,max

(f[root][1

], f[root][0

]));

return0;

}

樹形dp 沒有上司的舞會

題意 給定一棵樹,每個點有權值,對於每乙個點,它和它的父節點不能同時被選,求權值最大值。定義d p x 0 dp x 0 表示不選擇x號點時的最大值,dp x 1 d p x 1 表示選擇 x x 號點時的最大值。對於x role presentation style position relati...

樹形DP 沒有上司的舞會

ural大學有n名職員,編號為1 n。他們的關係就像一棵以校長為根的樹,父節點就是子節點的直接上司。每個職員有乙個快樂指數,用整數 hi 給出,其中 1 i n。現在要召開一場周年慶宴會,不過,沒有職員願意和直接上司一起參會。在滿足這個條件的前提下,主辦方希望邀請一部分職員參會,使得所有參會職員的快...

沒有上司的舞會 樹形DP

ural大學有n名職員,編號為1 n。他們的關係就像一棵以校長為根的樹,父節點就是子節點的直接上司。每個職員有乙個快樂指數,用整數 hi 給出,其中 1 i n。現在要召開一場周年慶宴會,不過,沒有職員願意和直接上司一起參會。在滿足這個條件的前提下,主辦方希望邀請一部分職員參會,使得所有參會職員的快...