luogu1352 沒有上司的舞會 樹形DP

2022-05-03 19:36:12 字數 1189 閱讀 2759

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

$ f_ $表示以x為根的子樹,且x不參加(0)參加(1)舞會的最大快樂值

則 $f_ = \sum_^ max \,f_ \}$

$f_ = ^f_ } \ \  + r_$

答案為$ max \,f_ \}  $

#include

using

namespace

std;

const

int maxn = 6000 + 10;

int n,dp[maxn][2],r[maxn],root;

vector

edges[maxn];

bool vis[maxn];

inline

void

dfs(int now)

}int

main

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

dfs(root);

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

return

0;}

#include

using

namespace

std;

const

int maxn = 6000 + 10;

int n,dp[maxn][2],r[maxn],root;

vector

edges[maxn];

bool vis[maxn];

inline

void

dfs(int now)

}int

main

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

dfs(root);

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

return

0;}

luogu1352 沒有上司的舞會

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

LuoguP1352 FJSC 沒有上司的舞會

現在你有一棵樹,每乙個點有乙個點權 r i 如果選擇了 i 點,那麼 i 子樹上的所有的點都不能選,現在要求選擇若干個點,使得點權和最大。設 dp i 1 為選擇 i 點的 i 子樹的最大點權和,dp i 0 為不選擇 i 點的 i 子樹的最大點權和,那麼我們知道初始化為 dp i 0 sum ma...

P1352 沒有上司的舞會

原題鏈結 樹形dp入門 dp方程搞錯了居然還過了90 利用dfs遞迴求解 每個點分為選和不選兩種情況 假設選為1不選為0 dp x 0 max dp num i 1 dp num i 0 這裡一開始寫成了dp num i 1 但它的兒子的兩種狀態實際上都是可選的 dp x 1 dp num i 0 ...