• 沒有找到結果。

105北市賽程式

N/A
N/A
Protected

Academic year: 2021

Share "105北市賽程式"

Copied!
8
0
0

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

全文

(1)

程式設計試題

准考證號碼:

姓名:

USB 號碼:

評分主機帳號:

下表供自行記錄評分結果

題目 評分 飛天桑妮 Sunny 地雷區 Mine 導線短路 Short 小米雷射 Laser 手續費 Fee 時間限制 1 秒 1 秒 0.2 秒 6 秒 2 秒 一 二 三 四

(2)

臺北市

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

注意事項

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

7. 請用主辦單位分配的隨身碟備份原始程式碼,若因任何原因而需更換電腦時,僅能將 隨身碟內程式複製至新電腦,或下載已上傳至評分主機的程式碼。

8. 以 Java 程式語言撰寫程式者,請務必將 public class 以英文題目名稱命名,亦即 Sunny, Mine, Short, Laser 或 Fee(請注意大小寫)。若使用其他 class 名稱導致程式無 法編譯或執行,將以0分計算。

9. 若以非 C/C++/Pascal/Java 程式語言撰寫程式者,請事先告知監試人員,領取評分用隨 身碟。若要接受評分,需將程式編譯成可執行檔 (.exe)及原始檔案複製至評分用隨身 碟,交給監試人員送交評審評分。評分結果將以書面通知。

(3)

飛天桑妮

(Sunny)

問題描述 飛天桑妮是一隻運動神經很好的鼯鼠,她很喜歡在樹木間移動,尤其最愛從高處一躍 而下,享受滑翔的快感。她所居住的森林裡有 N 棵樹木,已知每棵樹 ti (1 £ i £ N) 的位 置 (xi, yi) 和高度 hi。桑妮的家 t1 位於 (0, 0),而桑妮的奶奶家 tN 位於 (10000, 10000) 的位置。這個週末她要去奶奶家,因而尋求你的協助。 從家裡前往奶奶家的旅程可定義為由 K (2 £ K £ N) 棵相異樹木構成的序列 p = [p(1) = 1, p(2), …, p(K) = N]。 由於桑妮想要快點到奶奶家,所以旅程後段的樹木不能比前段的樹木離桑妮家還近,也就 是 d(t1, tp(i+1)) ³ d(t1, tp(i)),其中 d(ti, tj) 表示兩棵樹 ti 和 tj 的直線距離。當桑妮從一棵較 高的樹 tp(i) 跳到下一棵樹 tp(i+1) 時,如果是由高到低,她就能使出滑翔絕技,享受樂趣。

高度差越大,樂趣就越大,因此我們可以把樂趣值定為 max{0, hp(i) - hp(i+1)}。她希望這段

旅程中可以享受到最大的樂趣,因此想請你幫忙寫一個程式,計算所有可能的旅程中,最 大的樂趣值為多少。 以上圖為例,森林中有五棵樹,其位置和高度如圖所示。如果桑妮的旅程是 [1, 2, 3, 4, 5],則這段旅程的最大樂趣為 t3 到 t4 得到的樂趣值 300 – 100 = 200;如果旅程是 [1, 3, 5],則最大樂趣為 t3 到 t5 得到的樂趣值 300 – 150 = 150。旅程 [1, 3, 2, 5] 是不合理的, 因為 t2 比 t3 離桑妮家還要近。旅程 [1, 5] 是合理的 (記得飛天桑妮的運動神經很好嗎), 但最大樂趣值是 0。 t2 (3000, 1000) t1 (0, 0) t5 (10000, 10000) t3 (3000, 5000) t4 (8000, 7000) 100 300 50 100 150

(4)

輸入範例1 5 3000 1000 50 8000 7000 100 0 0 100 3000 5000 300 10000 10000 150 輸出範例1 200 輸入範例2 7 0 0 42 5726 1480 29359 6965 4467 5706 8148 3284 16828 6335 6503 19170 9962 492 2996 10000 10000 18468 輸出範例2 26363 評分說明 本題共有三組測試資料,每組可有多筆測試資料: 第一組測試資料 N £ 5,000,樹木t1, …, tN 輸入時已依和桑妮家的距離由近到遠排序, 共30 分; 第二組測試資料 N £ 5,000,共 30 分; 第三組測試資料 N £ 100,000,共 40 分。

(5)

地雷區

(Mine)

問題描述 國家防衛隊的防衛系統發現,敵國一夕之間在兩國交界區域佈下許多地雷,這種地雷 的特性是周圍均有感測裝置,只要觸發感測裝置就會引發地雷爆炸,而如果感測裝置上也 有其他地雷的感測裝置,就會引發連鎖感應而產生連環爆炸。 國家防衛隊已偵測到地雷的座標位置,並準備使用誘導彈引爆所有的地雷,你的任務 就是根據地雷的座標,並善加利用地雷的連鎖感應機制,讓國家防衛隊所需使用的誘導彈 數量越少越好。 若以a x b 表示地圖大小,並以座標(1, 1)表示 左上角位置。右圖即為一個8 x 10 的地圖,其中M 標 示地雷位置,其周圍灰色區域為感測裝置,只要誘導 彈命中地雷(3, 3)或(5, 5)或其周圍任一感測裝置, 就可以一次引爆這兩個地雷,但地雷(2, 9)及(5, 10) 各需一顆誘導彈加以引爆,所以一共只需要發射3 顆 誘導彈就可以引爆四個地雷。 輸入格式 第一列為三個正整數,以一個空白為間隔,其中前兩個正整數 a, b 代表地圖的大小, 第三個正整數 c 代表地雷數量。接下來有 c 列,每一列有兩個以空白為間隔的正整數 row,

col 代表地雷的座標,座標不重複,1 ≤ row, col ≤ 10,000。 輸出格式 能成功引爆所有地雷所需最少誘導彈數量(一個正整數)。 輸入範例1 10 10 2 1 1 10 10 輸出範例1 2 輸入範例2 10 6 3 2 2 3 3 4 5 輸出範例2 1 1 2 3 4 5 6 7 8 9 10 1 2 M 3 M 4 5 M M 6 7 8 8 × 10 的地雷區域

(6)

導線短路 (Short)

問題描述 大稻埕科技公司生產了一批電路板,上面佈滿了許多金屬導線,然而因生產線設備出 現錯誤,導致有些電路板上的金屬導線互相接觸,因此引起短路。你的任務,就是檢測每 一塊電路板是否有短路的可能性。 為了簡化問題,所有的金屬導線皆以二維空間線段(X1, Y1)至(X2, Y2)來表示,每個電 路板上有N 個金屬導線。沒有問題的電路板上金屬導線皆不相交,而有問題的電路板上 則至少有一個相交點。 輸入格式 第一列輸入一整數N,代表這個電路板上有 N 條導線的線段。 接下來的N 列,每一列都有 4 個浮點數 X1, Y1, X2, Y2,中間以空白區隔,代表一條導 線從 (X1, Y1) 到 (X2, Y2), 0.0 ≤ X1, Y1, X2, Y2 ≤ 100,000.0。 輸出格式 若電路板沒有短路情形則輸出0,若有短路則輸出 1。 評分說明 本題共有四組測試資料,每組可有多筆測試資料: 第一組測試資料 N = 2,共 25 分; 第二組測試資料 N £ 5,共 25 分; 第三組測試資料 N £ 500,共 25 分; 第四組測試資料 N £ 10000,共 25 分。 輸入範例一 2 0.0 0.0 1.0 1.0 0.0 1.0 1.0 0.0 輸入範例二 3 1.0 0.0 2.0 0.0 0.0 1.0 1.2 2.0 3.0 1.0 1.8 2.0 輸入範例三 3 1.0 0.0 1.0 3.0 2.0 0.0 2.0 3.0 0.0 1.0 3.0 2.0 輸出範例一 1 輸出範例二 0 輸出範例三 1

(7)

小米雷射

(Laser)

問題描述 為了防止盜畫,美術館找來了小雷保全公司為他們設計安全系統,以偵測並防止竊賊 的進入。因此小雷保全決定在美術館的展間裏安置小米雷射裝置來保護展出的名畫。小米 雷射有別於一般的雷射,它可以發出米字型的雷射光,也就是小米雷射所在的那一行、那 一列,以及兩條對角線上的空間都能被雷射光掃描到。然而小米雷射的雷射光具有破壞力, 在電射光所能及的路線上不能擺放其他小米雷射,否則會被雷射光燒壞。如下圖(a)所示, 在座標 (2,3) 放一個小米雷射,則灰底的區域都可被成功的保護。由於小米雷射非常昂貴, 小雷保全為了降低成本,必須要設法在每一個不同形狀大小的展間放置最少的小米雷射來 確保能完整掃描展間的所有空間。例如,下圖(b)中為一個 3x4 的展間,若在此展間的 (2,3) 及 (1,1) 兩個座標位置各放一個小米雷射,就能完整掃描整個展間,且所有小米雷射都不 會被其他小米雷射的電射光破壞,因此此一3x4 的展間,只需要兩個小米雷射就能達到完 全的安全防護。請寫一個程式計算能完整掃描整個展間所需最少小米雷射數量。 輸入格式 輸入只有一列,有兩個整數 m 及 n,以空白字元隔開,代表一個長為 m 個單位,寬 為n 個單位的展間。 輸出格式 請根據輸入資料,輸出能完整掃描該展間所需最少小米雷射數量。 輸入範例 1 3 4 輸出範例 1 2 輸入範例 2 5 5 輸出範例 2 3

(8)

手續費

(Fee)

問題描述 全國最大的便利商店正在舉行集點數換獎品的活動,任何參與者皆可以依據其收集到 的貼紙點數,換得相對應的獎品。根據該活動的活動辦法,我們知道點數越高所能換得的 獎品價值越高;但是,每次兌換獎品時,只限使用一張集點卡上所收集到的點數,不能合 併多張集點卡的點數使用。 小智目前手上共有 n 張集點卡,為了換取最高價值的獎品,決定尋求科技公司的協 助,將這些集點卡上的所有點數合併到單一集點卡上。然而,這家科技公司的服務有兩項 規定:1) 一次只能合併兩張集點卡,2) 每次進行合併時,需收取和合併後點數相同數目 的手續費。 例如,若小智手上有 3 張集點卡,上面的點數分別是 1, 3, 8。若小智第一次合併點 數為 1 和 8 的集點卡,則合併後的新集點卡點數為 9,同時必須付 9 元的手續費;接 著,小智要合併點數為 3 和 9 的集點卡,合併後的點數為 12,且手續費為 12 元。因 此,兩次合併的手續費總和為 9 + 12 = 21 元。但是,若小智第一次合併點數為 1 和 3 的 集點卡,則合併後的新集點卡點數為 4,且手續費為 4 元;接著,小智合併點數為 4 和 8 的集點卡,合併後的點數為 12,且手續費為 12 元。因此,兩次合併的手續費總和為 4 + 12 = 16 元。 小智發現不同的合併順序,並不會影響最後合併完成時集點卡上的總點數,但卻會影 響合併所需的手續費。請你幫忙小智計算合併 n 張集點卡的最低手續費。 輸入格式 輸入的第一行有一個整數 n,代表需要合併的集點卡張數;第二行有 n 個以空白符 號相間隔的正整數,分別代表這 n 張集點卡原有收集到的點數。同時,輸入資料中,每 一張集點卡上原有收集到的點數,皆為小於或等於 1,000 的正整數。 輸出格式 請根據輸入的資料,輸出合併這 n 張集點卡所需最低手續費。 評分說明 本題共有四組測試資料,每組可有多筆測試資料: 第一組測試資料 n = 3,共 20 分。 第二組測試資料 3 ≤ n ≤ 10,共 20 分。 第三組測試資料 3 ≤ n ≤ 1,000,共 30 分。 第四組測試資料 3 ≤ n ≤ 100,000,共 30 分。 輸入範例1 3 1 3 8 輸出範例1 16 輸入範例2 4 8 3 5 1 輸出範例2 30

參考文獻

相關文件

(三) 使用 Visual Studio 之 C# 程式語言(.Net framework 架構) ,設計 各項系統程式、使用者操作介面,以及報表。. (四) 使用 MS

5、「選課系統資料庫」APP 程式撰寫與分析(8 小時) 6、「雲端電子書城」APP 程式撰寫與分析(8 小時) 7、「多益 TOEIC 單字學習系統」APP

(1) 請詳實填寫後,報名表紙本採郵寄方式,電子檔請以 Word

(三)使用 Visual Studio 之 C# 程式語言(.Net framework 架構)、Visual Studio Code 之 JavaScript 程式語言(JavaScript framework 架構) ,搭配 MS

阿吉老師將簡介 micro:bit 開發程式環境,並分享 micro:bit 內建感測器程式編寫、數位/類比信號讀取及寫入,並了解 如何用 micro:bit 連接電子模組編寫程式進行機電整合。.

{ 許多問題都是請受訪者以李克特尺度指出 其同意或不同意的程度,這些問題可以正

在撰寫網頁應用程式 HTML 的語法當中,以下何者錯誤?(A)<a>是用來製作超連結的標記(Tag) (B)HREF 是一個在<a>與</a>中指定其他

多元就業開發方案社會型 3 年期計畫書撰寫格式