洛谷 1352 沒有上司的舞會

2022-05-26 08:30:10 字數 1125 閱讀 9636

題目描述

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

1111

11 3

2 36 4

7 44 5

3 50 0

輸出樣例#1: 複製

(一年前寫的dp嘿嘿嘿)

step1:本題是個入門級別的樹形dp題目

step2:前情提要_本題有多組資料_下文中的爸爸就指代直系上屬

step3:由題意知,爸爸和兒子只能同時去乙個,因此可以得出轉移方程:dp[m][1]=dp[i][0]。\\m是i的父親,1表示去,0表示不去\\ dp[m][0]+=max(dp[i][1],dp[i][0])即如果父親不去,則在兒子的去或不去最大收益中找最大值

step4:首先要找到這棵樹的頂根,然後再從祖先dfs

step5:貌似沒啥要說的了

**;

#include#include

#include

#include

#include

#include

using

namespace

std;

const

int n=10005

;int dp[n][5

];

intfa[n],vis[n],n;

void dfs(int

m) }

}void

init()

intmain()

return0;

}

洛谷 P1352 沒有上司的舞會

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

洛谷 P1352 沒有上司的舞會

原題 這道題我非常神奇賴皮的用了拓撲,實際上這是一道樹形dp,但是身為蒟蒻的我覺得拓撲可以寫,結果真的讓我水過了,哈哈哈 用乙個二維陣列模擬每個人參加或者不參加,從最底層的員工開始向上拓撲 by acer.mo include include includeusing namespace std i...

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

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