wikioi 1380 沒有上司的舞會 樹形dp

2022-04-01 04:17:20 字數 1547 閱讀 6358

時間限制: 1 s

空間限制: 128000 kb

題目等級 : 鑽石 diamond

題目描述 description

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

輸入描述 input description

第一行乙個整數n。(1<=n<=6000)

接下來n行,第i+1行表示i號職員的快樂指數ri。(-128<=ri<=127)

接下來n-1行,每行輸入一對整數l,k。表示k是l的直接上司。

最後一行輸入0,0。

輸出描述

output description

輸出最大的快樂指數。

樣例輸入

sample input71

1111

111 32 3

6 47 4

4 53 5

0 0

樣例輸出

sample output

資料範圍及提示 data size & hint

各個測試點1s

/*

樹狀動態規劃

對於每個人,都有去和不去兩種可能,所以找到根節點,向下處理。

對於每個節點:

1、如果到場,則在這個點的氣氛值 =其所有下屬都不到場時的氣氛值 +其本身的氣氛值。

2、如果不到場,則在這個點的氣氛值=其下屬到場(或者不到場,二者取較大值)時的氣氛值。 */

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

typedef

long

long

ll;using

namespace

std;

//freopen("d.in","r",stdin);

//freopen("d.out","w",stdout);

#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)

const

int maxn=60000+100

;vector

g[6000

];int f[maxn][2],a[maxn/10],b[maxn/10

],n;

void dfs(int k)//

dfs求解

f[k][

1]+=a[k];

}int

main()

//建樹過程,用乙個vector建樹

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

}return0;

}

Codevs P1380 沒有上司的舞會

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

codevs1380 沒有上司的舞會

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

CODEVS 1380 沒有上司的舞會

題意 在一棵樹上每個點都有價值,在這些點裡找出一些互不相連的點並使其價值之和最大。標籤是樹形dp,於是我第一次就嘗試著用dp做,然而在讀入的時候這個題挖了個坑,讀入a,b,b是a的上司,然而我二話沒說就把a當做了b的上司,結果就做不出來了。然後第二次我就 think diffierent 用了一種貪...