樹形dp的一道較為基礎的模板題
dp[i][0/1]為第i個員工是否來參加的最大值
先找到根節點
先遍歷完它的兒子,再來更新答案
dp[i][0]+=max(dp[j][0],dp[j][1]);//j為i的兒子,i不來,那j可來可不來
dp[i][1]+=dp[j][0];//j為i的兒子,i來,那只能不來
dp[i][0]=0;//不來的初始值為0
dp[i][1]=r[i];//來的初始值就是此人的快樂指數
很明顯就是大boss來不來的問題了
max(dp[root][0],dp[root][1]);
完整**:
#includeusing namespace std;
const int n=6000+10;
int n,m;
int r[n];
bool v[n];
vectorson[n];
int dp[n][2];
inline int read()
while(c>='0'&&c<='9')
return tot*f;
}inline void f(int now)
}int main()
int root;
for(int i=1;i<=n;i++)
if(!v[i])
f(root);
int ans=max(dp[root][1],dp[root][0]);
cout
}
洛谷P1352 沒有上司的舞會題解
某大學有n個職員,編號為1 n。他們之間有從屬關係,也就是說他們的關係就像一棵以校長為根的樹,父結點就是子結點的直接上司。現在有個周年慶宴會,宴會每邀請來乙個職員都會增加一定的快樂指數ri,但是呢,如果某個職員的上司來參加舞會了,那麼這個職員就無論如何也不肯來參加舞會了。所以,請你程式設計計算,邀請...
洛谷 P1352 沒有上司的舞會
洛谷 p1352 沒有上司的舞會 某大學有n個職員,編號為1 n。他們之間有從屬關係,也就是說他們的關係就像一棵以校長為根的樹,父結點就是子結點的直接上司。現在有個周年慶宴會,宴會每邀請來乙個職員都會增加一定的快樂指數ri,但是呢,如果某個職員的上司來參加舞會了,那麼這個職員就無論如何也不肯來參加舞...
洛谷 P1352 沒有上司的舞會
原題 這道題我非常神奇賴皮的用了拓撲,實際上這是一道樹形dp,但是身為蒟蒻的我覺得拓撲可以寫,結果真的讓我水過了,哈哈哈 用乙個二維陣列模擬每個人參加或者不參加,從最底層的員工開始向上拓撲 by acer.mo include include includeusing namespace std i...