• Tidak ada hasil yang ditemukan

第一題:拯救毛毛蟲

N/A
N/A
Protected

Academic year: 2023

Membagikan "第一題:拯救毛毛蟲"

Copied!
8
0
0

Teks penuh

(1)

第一題:拯救毛毛蟲

還記得甦蹦嗎?沒錯,永遠都是那隻愛吃橘子的烏龜。

話說在新年的最後,甦蹦前往了墨西哥神殿祈求古墨西哥先靈的力量來拯 救他那陷入蟲蟲危機的《傳說中的橘子園》。

可是墨西哥實在是很遠啊,甦蹦才剛踏出家門就肚子餓了。他走到了溪邊準 備找尋吃的。很快地他發現了溪中的荷葉上有很多隻毛毛蟲。

啊,他想著,連盤子都幫我準備好了那些毛毛蟲好可憐啊,應該救牠們上 岸。

甦蹦花了一些時間調查,發現荷葉上共有 N 種毛毛蟲。每種毛毛蟲可以用三 個數字來描述:W、D 和 C。表示這種毛毛蟲重量為 W 克、美味度為 D、共有 C 隻。

但是由於甦蹦實在是太餓了,餓到沒有力氣搬動太重的毛毛蟲:事實上,

他只有力氣搬一趟,這一趟搬運的毛毛蟲總重量不能超過 T 克。

看著毛毛蟲們在荷葉上掙扎、努力躲避水花的潑濺,甦蹦不禁惻隱之心大起

『這時候也顧不得什麼傳說中的橘子了!還是救活生命要緊』甦蹦對自己說著,

然後開始計算怎麼搬才能讓搬回來的毛毛蟲美味度總和最高。

可能是真的太餓了,甦蹦完全算不出來,只好向你求助。

請你寫一個程式幫幫他、也幫幫那些毛毛蟲吧!

輸入說明

輸入第一行有兩個正整數 N、T。表示毛毛蟲的種類和甦蹦最大負重,N <=

20 且 T <= 20,000。接下來會有 N 行,每行會有三個非負整數,Wi、Di和 Ci,依序 表示第 i 種毛毛蟲的重量、美味度跟數量,滿足 Ci <= 10。

輸出說明

輸出只需包含一行一個數字 K。表示能達到的最大美味度總和。

範例一

輸入 3 10 1 5 1 2 2 1 3 3 3 輸出 14

(2)

請繼續翻下一頁 雖然最後瘋狂科學家失敗了,但這也激勵了 DBTF開始了新的研究。

他發現,如果將許多橘子用強力膠水黏在一起,會變得更美味!

於是他準備了 N顆橘子,準備把它們串成一條橘子形蜈蚣。也就是總共要黏 (N-1)次,他可以任意調整順序,只要結果能排成一條橘子蜈蚣就好了。

但是不是什麼膠水都合用的。每個橘子都有自己的大小,如果要把兩顆大小 分別為 W1、W2的橘子黏起來,困難度會是|W1-W2|。

也就是他使用的膠水黏性至少要有|W1-W2|才行成功黏著。

DBTF 去雜貨舖問了膠水的價錢,發現這個雜貨舖有賣 M種膠水,每種膠水 都有單價C 和黏性 E,表示一罐這種膠水可以將困難度 <= E的兩顆橘子黏起來。

每種膠水都有無限多的存貨,但是一罐膠水只能用一次。

請你寫一個程式幫 DBTF算出黏接這條橘子蜈蚣的最低花費是多少。

輸入說明

輸入第一行有兩個非負整數 N、M。表示橘子的數量和膠水的種類數,N, M

<= 200000。第二行會有 N 個正整數,表示每顆橘子的大小。接下來會有M行,每 行有兩個正整數 Ci和Ei依序表示第 i 種膠水的單價和黏性。所有輸入的數字都會 是介於[0, 1000000000]的非負整數。

輸出說明

輸出只需包含一行。如果無法達成目標請輸出一個字串"Q__Q"。(Q 底線底線 Q,不含雙引號)。如果可以達成目標請輸出一個數字 K 表示最低花費。

範例一

輸入 4 3 3 1 5 5 1 1 2 2 3 3

輸出 5

市立建國高級中學資訊科毛毛蟲軍團製作群 編製 2

(3)

輸入 3 1 3 1 3 1 1 輸出 Q__Q

(4)

請繼續翻下一頁 場上有很多細胞,一些細胞可以伸出觸手和其他細胞連接,就可以攻擊敵方細 胞或是替己方細胞進行補給。

由於上次遊戲作者的改版實在是造成天怒人怨,不能自肥的觸手還叫觸手 嗎!現在作者終於釋出下一個改版:這個改版把所有觸手變成雙向連接,也就 是如果B細胞跟 T細胞中間有一隻觸手的話,B細胞可以攻擊T細胞、T細胞同時 也可以攻擊B細胞。同時,作者也把觸手變成不可切斷的。也就是一進入遊戲,

畫面上便有許多已經連結好的觸手,你將不能添加或減少任何一條觸手。

改版也做了一個新的改進:任兩個細胞之間可以有多隻觸手連結。

最愛玩觸手的阿 ˋ 丘一聽到有新改版,立刻拋下瑪奇去玩TENTACLE WAR。

他花了一個小時又二十三分終於打到了最後一關:一進入遊戲發現這關總 共有 N 個細胞、M 條觸手。

他想要佔領某些細胞使得所有細胞都符合下列兩條件之一:1.本身被佔領 。 2.至少有一個被佔領的細胞跟它以觸手相鄰。

但是他又想儘速破關,所以他想問你,最少需要佔領幾個細胞?

輸入說明

輸入第一行有兩個正整數 N、M,表示這關有 N 個細胞和M 條觸手,1 <= N

<= 30 且 N-1 <= M <= N(N-1)/2 以及。細胞依序編號為 1~N。接下來有M行每行 有兩個數字Ai和 Bi,表示細胞 Ai和細胞Bi之間有觸手連接。保證整個關卡連通

,亦即任一細胞可以透過其他觸手和細胞中繼,到達另一細胞。

輸出說明

輸出只需包含一行一個數字 K。表示最少需要佔領的細胞數。

範例一

輸入 3 2 1 2 2 3

輸出 1

市立建國高級中學資訊科毛毛蟲軍團製作群 編製 4

(5)

輸入 5 4 1 2 2 3 2 4 4 5 輸出 2

(6)

請繼續翻下一頁 海鞘大驚,因為上面寫著,給草甘看完該錄影帶即可治療草甘的疾病!

影片一開始,在旁邊跳來跳去的草甘突然停了下來,專注地盯著電視螢幕。

原來這是二十一年前International Turtle-stacking Olympiad(世界疊烏龜 奧林匹亞大賽, ITO)的錄影帶!

只見草甘走到一塊N×M的棋盤上,這個棋盤有些格子有刺有些沒有。草甘要 在這個棋盤上放一塊正方形的地基,然後在這個地基上疊烏龜。

但是他知道,地基必須滿足下列兩個限制,否則會失去資格:1.地基的邊 緣必須貼齊棋盤格線,且必須擺放跟格線水平或垂直,不能擺斜的。2.地基覆蓋 的格子不能包含超過 C根刺,否則地基會被破壞。

草甘只要能擺下面積最大的地基就能拿到ITO金牌了!

請你幫他寫一個程式計算能擺放的最大地基邊長。

輸入說明

輸入第一行有三個正整數 N、M、C,N,M <= 2000、C <= NM。表示棋盤的大小 和地基能承受的刺的最大數量。接下來會有 N 行每行一個由 0或1組成、長度為M 的字串來描述該棋盤的模樣。1 表示該格有刺、0 表示沒有。

輸出說明

輸出只需包含一行一個非負整數 K。表示能擺放的地基的最大邊長。

範例一

輸入 5 3 5 000 111 011 000 111

輸出 3

市立建國高級中學資訊科毛毛蟲軍團製作群 編製 6

(7)

輸入 7 7 0 1110111 1100011 1000001 0000000 1000001 1100011 1110111 輸出 3

(8)

關係圖。如果 A認得 B便把 A 畫一條箭頭指向 B。需要注意的是"認得"這個詞是單 方面的,"A認得 B"並不一定"B認得A"。

小乃盯著這張關係圖發呆。他想,如果存在一串序列:A, S1, S2, ..., Sk, B。且滿足每個人都"認得"他下一個人。即 A認得S1、S1認得S2、...、Si認得 Si+1、...、Sk-1認得Sk。那麼就當作 A能聯繫到 B。

如果有兩個人能互相聯繫到,那麼就把這兩個人稱作一對(pair)。

海鞘想知道,這張關係圖中共有幾對(幾個pair)呢?

輸入說明

輸入第一行有二個正整數 N、M。表示這張關係圖中共有 N 個人(或烏龜、樹朋 友)N,M <= 200000,編號1~N。然後總共有M個"認得"。接下來會有M行,每行兩 個數字Ai, Bi,表示Ai認得 Bi

輸出說明

輸出只需包含一行一個非負整數 K。表示總共有幾個pair。

範例一

輸入 7 8 1 2 2 3 3 2 3 5 3 4 5 1 4 6 6 4

輸出 7

市立建國高級中學資訊科毛毛蟲軍團製作群 編製 8

Referensi

Dokumen terkait

有一隻小駱駝經常鬱鬱寡歡 的看著遠方,沒有人知道牠 為什麼不快樂。有一天,小 駱駝終於忍不住開口問了身 旁的老駱駝幾個問題: 小駱駝:「老爹,為什麼我們的背這麼駝?醜死了!」 老駱駝:「傻孩子,這個叫駝峰,可以儲存大量的水和養分, 讓我們順利橫越沙漠呀!」 008... 小駱駝:「那我們長長的睫毛又是做什麼用的呢?」