沒有上司的晚會(樹形DP)

2021-08-09 01:23:16 字數 863 閱讀 9883

一道比較水的樹形dp

由題意得,兩個相鄰的節點不能同時取,而且存在負數

dp定義很直接

dp[i][1] =>取

dp[i][0] =>不取

dp陣列存最大值

可以從根節點dfs下去 收集0和1的資訊

狀態轉移也很顯然:

dp[x][0]+=max(dp[y][0],dp[y][1]);

dp[x][1]+=dp[y][0];

#include

#include

#include

#include

#include

using

namespace

std;

#define for(i,a,b) for(int i=(a),i##_end_=(b);i<=i##_end_;++i)

#define dor(i,a,b) for(int i=(a),i##_end_=(b);i>=i##_end_;--i)

#define inf 0x3f3f3f3f

#define ll long long

#define m 200005

inline

void chkmi(int &a,int b)

inline

void chkmx(int &a,int b)

inline

int min(int a,int b)

}int main()

dfs(1,0);

printf("%d\n",max(dp[1][0],dp[1][1]));

return

0;

}

沒有上司的晚會 樹形DP

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

沒有上司的晚會 樹形DP

某公司要舉辦一次晚會,但是為了使得晚會的氣氛更加活躍,每個參加晚會的人都不希望在晚會中見到他的上司,要不然他們會很掃興。現在已知每個人的活躍指數和上司關係 當然不可能存在環 求邀請哪些人來能使得晚會的總活躍指數最大。利 用鏈 式儲存結 構。對於 每乙個頂 點,開一 條鏈,依 次儲存以 該點為起 點的...

ural 1039 沒有上司的晚會 樹形dp

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