P1352 沒有上司的舞會

2021-08-09 20:34:51 字數 746 閱讀 3152

原題鏈結

樹形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];

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using namespace std;

void add(int p1,int p2)

void dfs(int x)

return;

}int main()

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

if(!f[i])

dfs(boss);

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

ans=max(ans,max(dp[i][0],dp[i][1]));

printf("%d",ans);

return 0;

}

P1352 沒有上司的舞會

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

P1352 沒有上司的舞會

題目 p1352 沒有上司的舞會 演算法標籤 dp,搜尋,樹形結構,記憶化搜尋 從樹的頭往下求結果會有後效性,且有多個葉子節點,資料不易處理 則採用,葉子節點往頭部求結果 對於某一節點,有選擇和不選擇兩種情況 1 不選擇的話 記 dp 0 for int i 0 i a x tail.size i ...

P1352 沒有上司的舞會

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