沒有上司的晚會 樹形DP

2021-09-26 22:42:37 字數 1521 閱讀 3544

某公司要舉辦一次晚會,

但是為了使得晚會的氣氛更加活躍,

每個參加晚會的人都不希望在晚會中見到他的上司,

要不然他們會很掃興。

現在已知每個人的活躍指數和上司關係(當然不可能存在環),

求邀請哪些人來能使得晚會的總活躍指數最大。

利 用鏈

式儲存結

構。對於

每乙個頂

點,開一

條鏈,依

次儲存以

該點為起

點的邊。

利用鏈式儲存結構。對於每乙個頂點,開一條鏈,依次儲存以該點為起點的邊。

利用鏈式儲存

結構。對

於每乙個

頂點,開

一條鏈,

依次儲存

以該點為

起點的邊。下面

的程式碼用

e陣列儲

存邊的信

息,he

ad[i

]儲存i

這個頂點

對應的鏈

的起始位

置。

下面的**用e陣列儲存邊的資訊,head[i]儲存i這個頂點對應的鏈的起始位置。

下面的**用

e陣列儲

存邊的信

息,he

ad[i

]儲存i

這個頂點

對應的鏈

的起始位

置。通 時e

中的ne

xt域使

所有起始

點為i的

邊連成一

條鏈

。通時e中的 next域使所有起始點為i的邊連成一條鏈。

通時e中的n

ext域

使所有起

始點為i

的邊連成

一條鏈。

從 根節

點開始遞

歸!

從根節點開始遞迴!

從根節點開始

遞迴!

#include

#include

using

namespace std;

struct note

e[18926];

int head[

10001

],f[

10001][

2],h[10001

],boss[

10001

],x,y,n,tot;

void

add(

int x,

int y)

//建立鍊錶

voiddp(

int now)

//遞迴+dp

}int

main()

for(

int i=

1; i<=n; i++)if

(boss[i]==0

)dp(k);

cout<<

max(f[k][0

],f[k][1

]);return0;

}

老師真好~~~

沒有上司的晚會 樹形DP

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

沒有上司的晚會(樹形DP)

一道比較水的樹形dp 由題意得,兩個相鄰的節點不能同時取,而且存在負數 dp定義很直接 dp i 1 取 dp i 0 不取 dp陣列存最大值 可以從根節點dfs下去 收集0和1的資訊 狀態轉移也很顯然 dp x 0 max dp y 0 dp y 1 dp x 1 dp y 0 include i...

ural 1039 沒有上司的晚會 樹形dp

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