沒有上司的舞會 樹形DP

2022-06-03 07:00:11 字數 702 閱讀 6916

題意:有n個職員可以參加舞會,每個職員有乙個歡樂值,職員之間就像一顆樹,每個父節點都是子節點的上司,同時乙個職員不可以他的直接上司一起參加,。現在選一些員工參加舞會,求參加員工的可能最大快樂值。

做法:設f[i][0]表示i代表的子樹之下,i職員不參加的最大快樂值,f[i][1]表示i代表的子樹之下,i職員參加的最大快樂值。則狀態轉移方程得

f[i][0]+=max(f[j][1],f[i][0])如果i不參加,那麼他的每個兒子j可以選擇參加或者不參加,累加每個兒子的較大的值。

f[i][1]+=f[j][0]如果i參加,那麼它需要累加它每個兒子不參加時的最大快樂值。

然後就是從頂頭上司根節點開始,深度優先遍歷即可

#includeusing

namespace

std;

int f[1005][2

];int val[1005

];vector

v[1005

];int

ans;

int vis[1005

];void dp(intt)}

intmain()

introot;

for(int i=1;i<=n;i++)

}dp(root);

printf("%d

",max(f[root][1],f[root][0

]));

}

樹形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。現在要召開一場周年慶宴會,不過,沒有職員願意和直接上司一起參會。在滿足這個條件的前提下,主辦方希望邀請一部分職員參會,使得所有參會職員的快...