藍橋杯訓練 動態規劃 沒有上司的晚會

2021-08-07 15:29:30 字數 1607 閱讀 2646

題目描述

ural周立大學的校長正在籌備學校的80周年紀念聚會。由於學校的職員有不同的職務級別,可以構成一棵以校長為根的人事關係樹。每個職員都有乙個唯一的整數編號(範圍在1到n之間),並且對應乙個參加聚會所獲得的歡樂度。為了使每個參加聚會者都感到歡樂,校長想設法使每個職員和他(她)的直接上司不會同時參加聚會。

你的任務是設計乙份參加聚會者的名單,使總的歡樂度最高。

輸入格式

輸入的第一行是乙個整數n,1<= n <= 6000

以下的n行是對應的n個職員的歡樂度(歡樂度是乙個從-128到127之間的整數)

接著是學校的人事關係樹,樹的每一行格式如下:

< l > < k >

表示第k個職員是第l個職員的直接上司。

輸入以0 0表示結束

輸出格式

輸出:參加聚會者獲得的最大總歡樂度

樣例資料

樣例輸入71

1111

111 32 3

6 47 4

4 53 5

0 0樣例輸出

5解題思想:找出所有的根節點,再依次訪問他所有的根節點,動態的記錄該節點代表員工去和不去的高興度,最終匯合到其根節點上來,最終把根節點加起來便是所求的答案

**如下:

/*

題目描述

ural周立大學的校長正在籌備學校的80周年紀念聚會。由於學校的職員有不同的職務級別,可以構成一棵以校長為根的人事關係樹。每個職員都有乙個唯一的整數編號(範圍在1到n之間),並且對應乙個參加聚會所獲得的歡樂度。為了使每個參加聚會者都感到歡樂,校長想設法使每個職員和他(她)的直接上司不會同時參加聚會。

你的任務是設計乙份參加聚會者的名單,使總的歡樂度最高。

輸入格式

輸入的第一行是乙個整數n,1<= n <= 6000

以下的n行是對應的n個職員的歡樂度(歡樂度是乙個從-128到127之間的整數)

接著是學校的人事關係樹,樹的每一行格式如下:

< l > < k >

表示第k個職員是第l個職員的直接上司。

輸入以0 0表示結束

輸出格式

輸出:參加聚會者獲得的最大總歡樂度

樣例資料

樣例輸入71

1111

111 32 3

6 47 4

4 53 5

0 0樣例輸出

5解題思想:找出所有的根節點,再依次訪問他所有的根節點,動態的記錄該節點代表員工去和不去的高興度,最終匯合到其根節點上來,最終把根節點加起來便是所求的答案

*/#include #include #include using namespace std;

int father[6005],vis[6005],dp[6005][2],t;

void dfs(int node)

}}int main()

memset(vis,0,sizeof(vis));

for(i=1; i<=t; i++)

if(father[i]==0)

printf("%d\n",sum);

return 0;

}

程式執行結果展示:

知識點總結:動態規劃

學習心得:網上**加改bug

藍橋杯 演算法訓練 Pyramids 動態規劃

資源限制 時間限制 7.0s 記憶體限制 512.0mb 問題描述 1.所有石塊都必須用上 2.金字塔數要盡可能少 3.所有金字塔兩兩不同 4.金字塔至少包含兩層,即底座為1的金字塔和底座為2的矮金字塔是不允許的 5.滿足以上4點的基礎上,最大的金字塔要盡可能大 大定義為用的石塊數多 6.滿足以上5...

沒有上司的晚會 樹形動態規劃

題目大意 有個公司要舉行一場晚會。為了能玩得開心,公司領導決定 如果邀請了某個人,那麼一定不會邀請他的上司 上司的上司,上司的上司的上司 都可以邀請 每個參加晚會的人都能為晚會增添一些氣氛,求乙個邀請方案,使氣氛值的和最大 氣氛值 邀請的人的氣氛總值 分析 定義f i,0 表示不邀請節點i能夠取得的...

藍橋杯 演算法訓練 K好數 (動態規劃)

演算法訓練 k好數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 如果乙個自然數n的k進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是k好數。求l位k進製數中k好數的數目。例如k 4,l 2的時候,所有k好數為11 13 20 22 30 31 33 共7個。由於這個數目...