#include
#include
#include
using
namespace
std;
vector
sons[6010];
int mmax(int a,int b)
if(f[cur][state]>0) return f[cur][state];
int sum=0;
for(int i=0;iint tryson=sons[cur][i];
if(state==1)
if(state==0)
}return f[cur][state]=sum;
}int main()
for(int i=1;i<=n;i++)
}return
0;}
題解:樹形dp(記憶化搜尋),由於不一定是二叉樹,所以我用了stl中的vector陣列來儲存每個節點的子節點。d(cur,state) 其中state表示cur點取或不取的最大值。 codevs1380 沒有上司的舞會
題目描述 description ural大學有n個職員,編號為1 n。他們有從屬關係,也就是說他們的關係就像一棵以校長為根的樹,父結點就是子結點的直接上司。每個職員有乙個快樂指數。現在有個周年慶宴會,要求與會職員的快樂指數最大。但是,沒有職員願和直接上司一起與會。輸入描述 input descri...
CODEVS 1380 沒有上司的舞會
題意 在一棵樹上每個點都有價值,在這些點裡找出一些互不相連的點並使其價值之和最大。標籤是樹形dp,於是我第一次就嘗試著用dp做,然而在讀入的時候這個題挖了個坑,讀入a,b,b是a的上司,然而我二話沒說就把a當做了b的上司,結果就做不出來了。然後第二次我就 think diffierent 用了一種貪...
codevs1380沒有上司的舞會
題目描述 ural大學有n個職員,編號為1 n。他們有從屬關係,也就是說他們的關係就像一棵以校長為根的樹,父結點就是子結點的直接上司。每個職員有乙個快樂指數。現在有個周年慶宴會,要求與會職員的快樂指數最大。但是,沒有職員願和直接上司一起與會。輸入格式 第一行乙個整數n。1 n 6000 接下來n行,...