• 沒有找到結果。

104北市資訊能力競賽程式設計

N/A
N/A
Protected

Academic year: 2021

Share "104北市資訊能力競賽程式設計"

Copied!
12
0
0

加載中.... (立即查看全文)

全文

(1)

臺北市

104 學年度高級中學資訊學科能力競賽

程式設計試題

准考證號碼:

姓名:

USB 號碼:

評分主機帳號:

下表供自行記錄評分結果

題目 評分 質數加法分解 Prime_Addition 舞會 Party 大黑馬 Underdog 猜謎遊戲 Guess 搶救雷恩大兵 Saving_Ryan 時 間 限 制 5 秒 5 秒 5 秒 5 秒 10 秒 一 二 三 四 五 每題 得分 總分

/ 500

(2)

臺 北 市 104 學年度高級中學資訊學科能力競賽 2 頁,共 12 頁

臺北市

104學年度高級中學資訊學科能力競賽

注意事項

1. 本競賽採電腦線上自動評分,程式必須依規定上傳至評分主機。請嚴格遵守每一題目 所規定之原始程式檔名及格式。若未遵守,該題將可以0分計算。 2. 本練習賽採取全面回饋機制,程式上傳至評分主機後,將自動編譯並進行測試。視等 待評分題數多寡,該題測試結果及該題得分數將可於短時間內得知。程式可重複上傳 及評分,但同一題兩次上傳之間必須間隔二分鐘以上。每題最終分數以該題所有單次 評分結果之最高分計算。 3. 程式執行時,每組測試資料執行時間個別計時(以評分主機執行時間為準)。執行時間 限制如封面頁所示。程式執行超過執行時間視同未完成,該組測試資料得分將以0分計 算。每題可使用記憶體空間,除非題目另有規定,以512MB為限。 4. 本次競賽程式送審時須上傳原始程式碼 (.c, .cpp, .pas, .java),輸出入皆以標準輸入、標 準輸出進行。注意:所有讀寫都在執行檔的工作目錄下進行,請勿自行增修輸出入檔 的檔名或路徑,若因此造成評分程式無法評分,該次評分結果將以0分計算。 5. 本競賽每一題皆有不同難易度的測試資料,詳細配分及限制條件請詳各題題目說明。 6. 本競賽題目無需使用超長整數 (long long) 變數,請勿使用 long long 宣告變數。若因 為使用該資料型態造成程式編譯或執行錯誤,導致評分程式無法正確評分,該次評分 結果將以0分計算。 7. 請用主辦單位分配的隨身碟備份原始程式碼,若因任何原因而需更換電腦時,僅能將 隨身碟內程式複製至新電腦,或下載已上傳至評分主機的程式碼。 8. 若以非 C/C++/Pascal/Java 程式語言撰寫程式者,請事先告知監試人員,領取評分用隨 身碟。若要接受評分,需將程式編譯成可執行檔 (.exe),複製至評分用隨身碟,交給 監試人員送交評審評分。評分結果將以書面通知。

(3)

質數加法分解 (Prime)

問題描述 依據定義,質數就是只有1 與該數本身兩個因數的自然數,這些數沒有辦法再分解成 其他質數的乘積。而對所有的質數,我們可定義一種由加法運算構成的分解方法,將一個 質數分解成相異質數的相加,例如:5 = 3 + 2、7 = 5 + 2,然而可以預期,這樣的分解方 法並不唯一,例如:19 = 17 + 2 = 11 + 5 + 3,29 = 19 + 7 + 3 = 19 + 5 + 3 + 2 = 17 + 7 + 5,而且有些數是無法進行加法分解的,例如:2 跟 3。 請寫一個程式,依照定義找出質數的加法分解方式,而為了簡化輸出結果,對於有多 種分解方式的,只要列出具備較大質數那一組結果,而若最大的質數相同,則第二個質數 也選擇較大的那一組,依此類推。例如質數19 的加法分解,只要輸出 17 + 2 即可;而質 數 29 的加法分解結果即為 19 + 7 + 3 這組答案,非 19 + 5 + 5。 輸入格式 第一列為一個正整數 n,代表測試資料的個數,n ≤ 3,000。接下來的 n 列,每一列 有 1 個正整數 mi1 ≤ mi ≤ 1,000,000,請注意 mi 並不一定是質數。 輸出格式 每筆測試資料各有一列輸出,即 mi 的相異質數加法分解結果, mi 的分解結果放在 同一列,數字由大至小排列,且數字與數字之間用一個空白隔開;若所給的質數無法分解, 請輸出原質數;若mi 並非質數,請輸出數字 0, 評分說明 本題共有四組測試資料: 第一組測試資料 n = 10,mi ≤ 100,共 25 分; 第二組測試資料 n = 20,mi ≤ 300,共 25 分; 第三組測試資料 n = 100,mi ≤ 10,000,共 25 分; 第四組測試資料 n =3,000,mi ≤ 1,000,000,共 25 分。 輸入範例 5 7 10 19 15 29 輸出範例 5 2 0 17 2 0 19 7 3

(4)
(5)

舞會

(Party)

問題描述 在古老的奧林匹亞舞會上,有成千上萬的男男女女們參加這場盛會,大會為了快速讓 最多人能夠找到舞伴,於是想到一個特殊的方法。他們請所有與會的人分成左右兩排,每 個人都可以任選一排的任意一個位置站好。若是兩排同一個位置的兩個人剛好是一位女生 及一位男生,他們就可以配對成舞伴。為了最大化舞伴配對數,魔法師施展魔法讓一些人 因睡著而退出排隊隊伍。舉例來說,女生的代號為0,男生的代號為 1,若左邊一排排出 來的是 L = <0, 0, 1, 0, 1, 0, 0> 等七位,而右邊一排排出來的是 R = <1, 0, 0, 1, 1, 1> 等六 位,此排列順序只會有四組配對成功。但魔法師施法讓左邊一排的第2 及第 5 位睡著成為 L' = <0, 1, 0, 0, 0>,同時把右邊一排的第 3 位睡著成為 R' = <1, 0, 1, 1, 1>後,就能最大化 配對數,即五對的舞伴。請寫一個程式計算魔法師施展魔法可得到的最大配對數。 輸入格式 輸入第一行有兩個整數 m 及 n,以空白字元隔開;第一個數字 m 代表左邊一排的 人數有 m 個 ,第二個數字 n 代表右邊一排的人數有 n 個。依據 m 的值,第二行有 m 個整數以空白隔開,第一個整數代表左邊一排第一個人的性別,第二個整數代表左邊一排 第二個人的性別,依此類推;其中整數 0 代表女生,整數 1 代表男生,且所有的整數不 是 0 就是 1。同樣地,第三行有 n 個整數以空白隔開,其中第一個整數代表右邊一排第 一個人的性別,第二個整數右表左邊一排第二個人的性別,依此類推。 輸出格式 請根據輸入的資料,輸出魔法師施展魔法可得到的最大配對數。 評分說明 本題共有四組測試資料。 第一組測試資料 m=10, n=2,共 20 分。 第二組測試資料 1 ≤ m, n ≤ 10,且左右兩排的人數必定相同,共 20 分。 第三組測試資料10 ≤ m, n ≤ 100,且左右兩排的人數不一定相同,共 30 分。 第四組測試資料100 ≤ m, n ≤ 1000,且左右兩排的人數不一定相同,共 30 分。 輸入範例 1 4 5 0 0 1 0 1 1 1 1 1 輸出範例 1 3 輸入範例 2 7 6 0 0 1 0 1 0 0 1 0 0 1 1 1 輸出範例 2 5

(6)
(7)

大黑馬 (Underdog)

問題描述 在某個校際球賽中,兩隊對決時每隊各派出奇數(2K+1)位選手進行 2K+1 場單打(不 可重覆),贏得K+1 場或以上的隊伍勝出。每位選手的實力以 BP 積分來表示,每場單打 時積分較高的選手一定獲勝。然而因為賽程的安排,有時實力組合較強的一隊未必能勝出, 例如A 隊有積分為 100, 80, 60 的三位選手,依序遭遇 B 隊積分為 90, 70, 50 的選手,將以 3:0 戰績獲勝, 但若依序遭遇 B 隊積分為 50, 90, 70 的選手,則反而將以 1:2 戰績落敗。 主辦單位將各隊選手的BP 積分加總,依序決定各隊的種子順序,總積分最高的為第 一種子。為了簡化問題,我們排除總積分相同的情況。而兩位BP 積分相同的選手對決時, 則該場單打由來自總積分較高的隊伍獲勝。 然而,在實際賽程中,選手的表現偶有異常(突出或失誤)的表現,導致個別的實力(BP 積分)突然上升或下降,這些異常的表現也必須列入考慮。例如在下列的範例中,第三種 子隊伍表現突出時,即可能擊敗其他兩隊。 某校的球隊是著名的黑馬,他們選手實力組合未必最強,但是卻經常意外擊敗實力組 合堅強的隊伍。也就是說,他們雖然種子順序不高,卻經常爆出冷門,打敗種子順序超前 許多的隊伍。請找出今年參賽的隊伍中,可能成為今年冠軍的最大黑馬。也就是,在有機 會擊敗所有對手的隊伍中,且不論機率多低,總積分最少的一隊(也就是種子順序數值最 大的一隊)。 輸入格式 第一行輸入K 和 N,以空白分開,代表每隊有 2K+1 位選手,參賽隊伍數為 N。 第二行開始有N 行,每一行有 1+3*(2K+1)個整數 S, P1, P2, …, P2K+1, U1, U2, …,U2K+1, L1, L2, …, L2K+1,中間以空白區隔,表示種子順序S 的隊伍由積分 P1, P2, …, P2k+1的2K+1 位 選手組成,為了簡化資料輸入的問題,P1, P2, …, P2k+1由大至小排列,也就是P1 ≥ P2 ≥ …≥ P2K+1,而這些選手表現突出時,實力相當於U1, U2, …, U2K+1,但是表現失常時,實力則 相當於L1, L2, …, L2K+1,且Ui ≥ Pi ≥ Li。為了簡化問題,U1 ≥ U2 ≥ … ≥ U2K+1和L1 ≥ L2 ≥ … ≥ L2K+1也一定成立。 輸出格式 每筆測試資料輸出一行,包含兩個數字S1, S2,中間以空白分開,代表若每位選手都 無異常表現時,大黑馬是種子順序S1的隊伍,但若考慮每位選手各種可能的異常表現時, 大黑馬是種子順序S2的隊伍。 評分說明 本題共有四組測試資料。 第一組測試資料 K ≤ 2,N ≤ 10,Ui = Pi = Li,共 20 分。 第二組測試資料 K ≤ 2,N ≤ 15,Ui ≥ Pi ≥ Li,共 20 分。 第三組測試資料 K ≤ 5,N ≤ 25,Ui ≥ Pi ≥ Li,共 20 分。 第四組測試資料 K ≤ 5,N ≤ 50,Ui ≥ Pi ≥ Li,共 40 分。 輸入範例 1 3 1 100 80 60 100 80 60 100 80 60 2 90 70 50 100 80 60 90 70 50 3 80 60 40 100 80 60 70 50 30 輸出範例 2 3

(8)
(9)

猜謎遊戲

(Guess)

問題描述 佩佩和喬治很喜歡玩模仿對方的遊戲,但是今天他們想要改變遊戲規則,改成如果誰 先模仿對方講話就算輸了。遊戲的方法與步驟是: 1. 佩佩和喬治先猜拳決定誰當出題者,誰當猜題者。 2. 出題者先寫下⼀個由 ‘A’ 和 ‘B’ 所組成且⾧度為 M 的字串 X,並且不可以讓猜 題者看到。 3. 猜題者寫下⼀個由 ‘A’ 和 ‘B’ 所組成且⾧度為 N 的字串 Y,並且不可以讓出題 者看到;當然,N 的數⽬⼀定⽐ M 來得⼤。 4. 如果猜題者的字串 Y 中存在⼀個⼦字串剛好等於出題者的字串 X ,則猜題者就 算輸了,要接受處罰跑操場。 5. 猜題者可以根據出題者的字串 X,從猜題者的字串 Y 中刪除部分的字元,直到字 串 Y 中不再含有⼀個⼦字串剛好等於字串 X。 6. 猜題者被處罰跑操場的圈數,恰好等於在步驟 5 中刪除的字元數。 例如,倘若出題者的字串是 ‘ABA’ ,而猜題者的字串是 ‘ABABAA’ ,由於後者存 在一個子字串等於前者,因此判定猜題者輸了;同時,由於猜題者只要移除第三個字元, 將字串改成 ‘ABBAA’ 即可完全避免有子字串等於 ‘ABA’ ,因此猜題者只需要被處罰跑 一圈操場即可。你的任務便是協助猜題者,找出最佳的策略減少被處罰跑操場的圈數。註: 若猜題者的字串 Y 中不存在任何一個子字串等於字串 X ,則處罰跑操場的圈數為 0。 輸入格式 第一行為一個出題者所提供的字串,第二行為一個猜題者所提供的字串。 輸出格式 請輸出該組測資中猜題者根據最佳策略所需要被處罰跑操場的圈數。 評分說明 本題共有五組測試資料,每組 20 分: 第⼀組測試資料中,M = 2 且 2 < N ≤ 10。 第⼆組測試資料中,2 ≤ M ≤ 5,2 < N ≤ 20,且 M < N。 第三組測試資料中,2 ≤ M ≤ 10,2 < N ≤ 100,且 M < N。 第四組測試資料中,2 ≤ M ≤ 10,2 < N ≤ 1000,且 M < N。 第五組測試資料中,2 ≤ M ≤ 100,2 < N ≤ 1000,且 M < N。 輸入範例 1 ABA ABABAA 輸出範例 1 1 輸入範例 2 ABA ABBAA 輸出範例 2 0

(10)
(11)

搶救雷恩大兵

(Saving Ryan)

問題描述 米勒上尉收到一道緊急命令,要求將二等兵雷恩即刻護送至指定地點。米勒上尉馬上 攤開戰場地圖,希望能規畫出一條最安全的路線。戰場地圖可視為一個 N×N 的表格,表 格中的每個位置只可以往東、南、西、北四個鄰近的位置移動。根據情報,米勤上尉已經 掌握每個位置的敵軍兵力,所謂最安全的路線,指的是這條路線上所有敵軍兵力總和最小 的路線。 圖一 圖二 以圖一為例,圖中的數字代表敵軍兵力。如果雷恩目前在 (4, 1) 的位置,需要被護送 到 (1, 4) 的位置,則最安全的路線為 (4, 1) → (4, 2) → (3, 2) → (2, 2) → (2, 3) → (1, 3) → (1, 4),路線上的敵軍兵力總數是 2+1+1+2+3+3+1 = 13。 由於雷恩非常重要,因此上級決定支援米勒上尉。米勒上尉可以用「一發」死光炸彈 轟炸地圖上的「一個」位置,轟炸過後該位置的敵軍將灰飛湮滅。以圖二為例,如果米勒 上尉轟炸了 (2, 4) 位置,則新的最安全路線將變成 (4, 1) → (4, 2) → (4, 3) → (4, 4) → (3, 4) → (2, 4) → (1, 4),路線上的敵軍兵力總數是 2+1+1+1+1+0+1 = 7。 請撰寫一個程式,幫助米勒上尉找出在一發死光炸彈支援下,最安全路線的敵軍兵力 總數。 輸入格式 輸入的第一行有一個正整數 N (1 ≤ N ≤ 20),代表地圖大小為 N×N。 接下去有 N 行,第 i 行有 N 個正整數 eij (1 ≤ eij ≤1000, 1 ≤ i, j ≤ N),代表地圖中每 個位置 (i, j) 的敵軍兵力數。數值之間以至少一個空白隔開。 下一行有一個正整數 Q (1 ≤ Q ≤ N4),代表可能的詢問數。 再接下去有 Q 行,每行有四個正整數 xq0, yq0, xq1, yq1 (1 ≤ xq0, yq0, xq1, yq1 ≤ N, 1 ≤ q ≤ Q)。(xq0, yq0) 為雷恩的出發位置,(xq1, yq1) 為雷恩的目的位置。數值之間以一個空白隔開。 輸出格式 請輸出 Q 筆答案,每個答案 aq 一行,代表一發死光炸彈支援下,從 (xq0, yq0) 到 (xq1, yq1) 最安全路線的敵軍兵力總數。 ○ 1 2 3 4 1 5 3 3 1 2 2 2 3 9 3 2 1 3 1 4 2 1 1 1 ○ 1 2 3 4 1 5 3 3 1 2 2 2 3 3 2 1 3 1 4 2 1 1 1

(12)

臺 北 市 104 學年度高級中學資訊學科能力競賽 12 頁,共 12 頁 輸入範例 1 3 1 10 2 1 1 100 1 100 1 2 1 1 1 2 2 1 3 3 輸出範例 1 1 3 輸入範例 2 4 5 3 3 1 2 2 3 9 2 1 3 1 2 1 1 1 3 4 1 1 4 4 4 2 3 3 1 2 4 輸出範例 2 7 5 7 評分說明 本題共有四組測試資料。 第一組測試資料所有 eij = 1。佔 10 分。 第二組測試資料若 i ≠ j 則 eij = 1,其餘 (i = j)且 eij = 1000。佔 10 分。 第三組測試資料所有詢問的目的位置均相同 (x11 = x21 = x31 = … = xQ1, y11 = y21 = y31 = … = yQ1),佔 40 分。 第四組測試資料,沒有特別的條件限制,佔 40 分。

參考文獻

相關文件

(2)依評選項目表所列之評選項目、權重、配分標準評分。評選委員之評分以 100 分為滿分,平均 70 分(含)以上者為合格分數,惟如出席評選委員之過

(A) 重複次數編碼(RLE, run length encoding)使用記録符號出現的次數方式進行壓縮 (B) JPEG、MP3 或 MPEG 相關壓縮法採用無失真壓縮(lossless compression)方式

分區技能競賽 資訊與網路技術. 正式賽

如果函數是由基本函數所組成,至少需要注意:分式函 數分母會等於 0

以下 Java 程式執行完後,輸出結果為何?(A)無法編譯,因為 Rectangle 類別不能同時 extends 一個類別且 implemets 一個介面(B)無法編譯,因為 Shapes 類別沒有

推理論證 批判思辨 探究能力-問題解決 分析與發現 4-3 分析文本、數據等資料以解決問題 探究能力-問題解決 分析與發現 4-4

聽、說、讀、寫,以 及分析、評價等能力 例:設計課業,讓學生 應用所學,並運用各

z請利用 struct 記錄 Bob 和 Alice 的相關資訊 z列印出 Bob 及 Alice 分別花多少錢. z再列印出