沒有上司的舞會

2021-09-12 14:38:10 字數 982 閱讀 7500

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

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

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

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

最後一行輸入0,0。

輸出最大的快樂指數。71

1111

111 32 3

6 47 4

4 53 5

0 0本題是樹上dp典型例題。設f[ i , 0 ] 為以 i 為根的子樹最大快樂值,其中 i 不參加舞會;f[ i , 1 ]為以 i 為根的子樹的最大快樂值,其中 i 參加舞會。那麼根據題意,很顯然f[ i , 1 ] = f[ j , 0 ] (其中 j 為 i 的兒子節點),f[ i , 0 ] = max( f[ j , 1 ] , f[ j , 0]) (其中 j 為 i 的兒子節點)

#include#include#includeusing namespace std;

int n;

const int maxn = 6000+50;

int val[maxn];

vectorson[maxn];

int f[maxn][2];

int used[maxn];

void read()

scanf("%d%d",&a,&b);

}void dfs(int u)

}void solve()

} dfs(0);

cout << max(f[0][0],f[0][1]) << endl;

}int main()

沒有上司的舞會

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

沒有上司的舞會

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

沒有上司的舞會

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