沒有上司的舞會(樹形dp)

2022-09-01 13:33:13 字數 1309 閱讀 6471

time limit: 1 sec  memory limit: 64 mb

submit: 8  solved: 8

[submit][status][web board]

有個公司要舉行一場晚會。 

為了能玩得開心,公司領導決定:如果邀請了某個人,那麼一定不會邀請他的上司 

(上司的上司,上司的上司的上司……都可以邀請)。 

題目 每個參加晚會的人都能為晚會增添一些氣氛,求乙個邀請方案,使氣氛值的和最大。 

第1行乙個整數n(1<=n<=6000)表示公司的人數。 

接下來n行每行乙個整數。第i行的數表示第i個人的氣氛值x(-128<=x<=127)。 

接下來每行兩個整數l,k。表示第k個人是第l個人的上司。 

輸入以0 0結束。 

乙個數,最大的氣氛值和。 

711

1111

11 3

2 36 4

7 44 5

3 50 0

5

一般樹形dp以節點編號為第一維然後進行dp

設dp[i][0]表示節點i不參加舞會所以其子節點既可以參加舞會又可以不參加所以

dp[i][0]+=max(dp[son][1],dp[son][0])

同理,dp[i][1]+=dp[son][0]

#include#include

#include

using

namespace

std;

const

int maxn=6000+10

;int dp[maxn][3

];struct

my;my bian[maxn*2

];int

adj[maxn];

bool

vis[maxn];

intw[maxn],n,fa;

void myinsert(int u,int

v)void dfs(int

x) }

}int

main()

int root=0

;

for (int i=1;i<=n;i++) if(!vis[i])

memset(vis,

0,sizeof

(vis));

dfs(root);

printf(

"%d\n

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