Sicily 1138 尋寶之旅

2021-06-29 03:16:08 字數 1297 閱讀 8459

time limit: 10 secs, memory limit: 32 mb

探險隊長凱因意外的弄到了乙份黑暗森林的藏寶圖,於是,探險隊一行人便踏上了尋寶之旅,去尋找傳說中的寶藏。

藏寶點分布在黑暗森林的各處,每個點有乙個值,表示藏寶的價值。它們之間由一些小路相連,小路不會形成環,即兩個藏寶點之間有且僅有一條通路。探險隊從其中的一點出發,每次他們可以留乙個人在此點開採寶藏,也可以不留,然後其餘的人可以分成若干隊向這一點相鄰的點走去。需要注意的是,如果他們把隊伍分成兩隊或者兩隊以上,就必須留乙個人在當前點,提供聯絡和通訊,當然這個人也可以一邊開採此地的寶藏。並且,為了節約時間,隊伍在前往開採寶藏的過程中是不會走回頭路的。現在你作為隊長的助理,已經提供了這幅藏寶圖,請你算出探險隊所能開採的最大寶藏價值。

第一行有兩個正整數n(1≤n≤100)表示藏寶點的個數,m(1≤m≤100)表示探險隊的人數。

第二行是n個不超過100的正整數,分別表示1到n每個點的寶藏價值。

接下來的n-1行,每行兩個數,x和y(1≤x,y≤n,x≠y),表示藏寶點x,y之間有一條路,資料保證不會有重複的路出現。

假設一開始探險隊在點1處。

乙個整數,表示探險隊所能獲得最大的寶藏價值。

5 31 3 7 2 81 22 31 44 5
16
zsuacm team member

// problem#: 1138

// submission#: 3586746

// the source code is licensed under creative commons attribution-noncommercial-sharealike 3.0 unported license

// uri:

#include #include int map[110][110], fa[110], degree[110], max[110][2][110], num[110];

int n, m;

void init()

}void creat_tree()

i++;

}}void work()

while (1)

degree[fa[i]]--;

degree[i] = -1;

}if (max[1][0][m] > max[1][1][m]) printf("%d\n", max[1][0][m]);

else printf("%d\n", max[1][1][m]);

}int main()

建國的尋寶之旅

題目描述 建國在元旦假期出去進行尋寶活動,在路上偶遇了也在尋寶的印第安納 瓊斯,於是他們組隊去尋寶。到達藏寶圖上的目標地點之後,他們發現洞穴的入口處有個機關,聰明的建國很快就發現了破解這個機關的方法。機關是這樣的 機關的旁邊有一張正方形石板,上面有著n x n的格仔,每個格仔裡都有乙個鏤空的符號。這...

JZOJ B組 GDOI2005 尋寶之旅

探險隊長凱因意外的弄到了乙份黑暗森林的藏寶圖,於是,探險隊一行人便踏上了尋寶之旅,去尋找傳說中的寶藏。藏寶點分布在黑暗森林的各處,每個點有乙個值,表示藏寶的價值。它們之間由一些小路相連,小路不會形成環,即兩個寶藏點之間有且只有一條通路。探險隊從其中的一點出發,每次他們可以留乙個人在此點開採寶藏,也可...

問題 S 字串 尋寶之旅

題目描述 輸入輸入共有n 2行 第1行為要尋找的寶物的特徵字串,第2行為島上的寶物數,第3行至第n 2行為每件寶物的位置資料和寶物名稱 0輸出 按距離由近到遠輸出所找到的寶物的位置,每件寶物的位置資料佔一行。若找不到寶物,則輸出 1 1 複製樣例資料 er 35 2.4 liner 2.5 8.3 ...