某公司要舉辦一次晚會,
但是為了使得晚會的氣氛更加活躍,
每個參加晚會的人都不希望在晚會中見到他的上司,
要不然他們會很掃興。
現在已知每個人的活躍指數和上司關係(當然不可能存在環),
求邀請哪些人來能使得晚會的總活躍指數最大。
利 用鏈
式儲存結
構。對於
每乙個頂
點,開一
條鏈,依
次儲存以
該點為起
點的邊。
利用鏈式儲存結構。對於每乙個頂點,開一條鏈,依次儲存以該點為起點的邊。
利用鏈式儲存
結構。對
於每乙個
頂點,開
一條鏈,
依次儲存
以該點為
起點的邊。下面
的程式碼用
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...