• 沒有找到結果。

101北市賽筆試與程式設計

N/A
N/A
Protected

Academic year: 2021

Share "101北市賽筆試與程式設計"

Copied!
22
0
0

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

全文

(1)

101 學年度台北市資訊學科能力競賽 A 卷

台北市 101 學年度高級中學

資訊學科能力競賽 筆試試卷

(A 版)

說明: 1. 作答時間 60 分鐘。若須計算或作圖,請利用本試卷的空白處。 2. 本筆試試卷題目為選擇題 15 題,每題 4 分、填充題 10 格,每格 4 分。滿分為 100 分。 3. 答案必須按題號依序填入「答案卷」上之空格內,否則不予計分。 4. 本試卷共分 A、B、C、D 四個版本,作答前請先校對試卷與答案卷是否為相同版本。 甲、選擇題部分: 1. 下列對於目前常常見到關於「Wi-Fi」(或 標誌)的敘述,何者不正確: (A) 為一種商標 (B) 為電信業者提供的無線網路服務 (C) 為一種認證 (D) 應用於符合IEEE 802.11標準的無線區域網路設備 2. 在 2 的補數系統中,8 位元的有號整數運算(00001111)2+(11111011)2= (A) (100001010)2 (B) (10)10 (C) (-10)10 (D) 以上皆非 3. 假設某電腦系統只用到大、小寫英文字母及數字,該系統至少需要幾位元才夠表示所 有的符號? (A) 5位元 (B) 6位元 (C) 7位元 (D) 8位元 4. 若 1 表示真,0 表示偽,則運算式 (((3 + 1) ≥ 3) + ((3 - 1) ≤ 3)))>1 =? (A) 0 (B) 1

(2)

101 學年度台北市資訊學科能力競賽 A 卷 (C) 2 (D) 無法判定 5. 相較於低階語言,下列敘述何者是高階語言的特性? (A) 較具有可攜性 (B) 執行速度較快 (C) 需要先編譯成執行檔才能執行 (D) 以上皆是 6. 下列何者為運算式 3+7×2-4/5 所對應的「後置」(postfix) 表示式? (A) 372×+45/- (B) -+3×72/45 (C) +-3×72/45 (D) 45/72×-+3 7. 下列那一種語言有垃圾收集(garbage collection)的機制?

(A) Java (B) Pascal

(C) C (D) C++ 8. 假設在某個時脈為 5 GHz 的 CPU 下執行一個指令需花 4 個時脈週期(clock cycles),那麼該指令實際上的執行時間是多少 ns (nanoseconds)? (A) 2 (B) 20 (C) 0.8 (D) 1.25 9. 下列那種惡意軟體常有感染其它程式檔的行為: (A) 病毒 (Virus) (B) 蠕蟲 (Worm)

(C) 後門程式 (Backdoor) (D) 特洛依木馬 (Trojan)

10. 雲端計算(Cloud Computing)架構上通常分為三層,由底層到上層排列依序為:

(3)

101 學年度台北市資訊學科能力競賽 A 卷

(A) SaaS -> PaaS -> IaaS (B) IaaS -> PaaS -> SaaS (C) PaaS -> SaaS -> IaaS (D) SaaS -> IaaS -> PaaS 11. 在下圖的樹中,哪一個節點必須被修改,才能成為一個

正確的二元搜尋樹 (binary search tree)?

(A) J (B) M (C) Q (D) R 12. 有一個雜湊表(hash table)共具有五個索引桶(bucket),分別為 0, 1, 2, 3, 4,而其鍵值 (key)皆為整數,此雜湊函數為 ℎ(�)= � ��� 5。同時,此雜湊表使用線性法(linear solution)來處理衝突問題(Collisions),也就是說當索引桶 h(i)被填滿之後,將接著試圖 填入 h(i+1) 或 h(i+2) 或依此類推。現在,如果有五個元素,其鍵值分別為 13, 8, 24, 10, 3,且依序被填入原本空白的雜湊表中,則此雜湊表中編號為 2 的索引桶內容為何? (A) 3 (B) 8 (C) 10 (D) 13 13. 當我們輸入一個網址(如 www.moe.gov.tw),即可得到對應的 IP 位址,這是因為我們 使用了下列哪一種伺服器的服務? (A) HTTP (B) FTP (C) DHCP (D) DNS 14. 以下的排序演算法哪一個在平均與最差狀況下,其執行時間複雜度皆為 O(nlogn)? (A) 氣泡排序(Bubble sort) (B) 插入排序(Insertion sort)

(4)

101 學年度台北市資訊學科能力競賽 A 卷

(C) 合併排序(Merge sort) (D) 快速排序(Quick sort)

15. ㄧ部配備 256MB 主記憶體的電腦,卻可以執行需要 300MB 主記憶體的應用程式,請 問該電腦可能使用了下列何者?

(A) 虛擬記憶體 (virtual memory) (B) 快取記憶體 (cache memory) (C) 多核心處理器 (multicore processor) (D) 外接硬碟 (external hard disk)

(5)

101 學年度台北市資訊學科能力競賽 A 卷 乙、填充題部分: 16. ((1110)2 AND (1011)2) OR ((1110)2 XOR (1011)2)=( )2? 17. (A+B*C)^(D/E)*(F-G) 之 後 序 式 (Postfix) 表 示 法 為 何 ? (^ 表 示 次 方 ) _______________。 18. 以二分搜尋法搜尋某一資料,最多要搜尋幾次,才能從 2000 筆已排序的資料中找到 所要的資料? ______________。 19. 一般市售的 8GB 的隨身碟,約可存_______________分鐘(取整數,小數捨棄)的影 片,若影片畫面大小為 800 × 600,色彩為 24 bit,每秒 30 個畫面,不壓縮也不含其 他額外的資訊。 20. 一個記憶體位址範圍為 000(16)~2FF(16),每一位址可儲存 64 位元資料,試問該記憶 體容量有幾位元組 (Bytes)? 21. 現有資料碼 1010101,若採用偶同位元 (even parity) 檢查,則其同位元值為何? 22. 哪一個子網路遮罩可以使 140.195.29.158 和 140.195.29.192 屬於同一個子網路,且 該子網路的合法 IP 位址數為最小? 23. 駭客們常用某種技術隱藏其電腦病毒或間諜軟體的蹤跡,用來逃避防毒軟體的偵測, 這類技術稱為 _______________。 24. 下列式子以二元表示法(binary representation)來看,共有多少個 1? 13x163 + 11x162 + 9x16 + 3 25. 下表的程式片段,離開最外層的迴圈後,s 的結果為何? ____________ int s = 0;

for (i = 1; i<3; i++){ for (y = 1; y<4; y++){ s = s + 1;

}

s = s + 2; }

(6)

101 學年度台北市資訊學科能力競賽 A 卷

(7)

101 學年度台北市資訊學科能力競賽 A 卷

台北市 101 學年度高級中學

資訊學科能力競賽 筆試答案卷

(A 版) 編號:

說明: 1.作答時間 60 分鐘。若須計算或作圖,請利用本試卷的空白處。 2.本筆試試卷題目為選擇題 15 題,每題 4 分、填充題 10 格,每格 4 分。滿分為 100 分。 3.答案必須按題號依序填入「答案卷」上之空格內,否則不予計分。 4.本試卷共分 A、B、C、D 四個版本,作答前請先校對試卷與答案卷是 否為相同版本。 甲、選擇題部分:

題號

1

2

3

4

5

6

7

8

答案

題號

9

10

11

12

13

14

15

答案

乙、填充題部分:

題號

答案

題號

答案

16

21

17

22

18

23

(8)

101 學年度台北市資訊學科能力競賽 A 卷

19

24

20

25

(9)

101 學年度台北市資訊學科能力競賽 A 卷

台北市 101 學年度高級中學

資訊學科能力競賽 筆試答案卷

(A 版) 編號:

說明: 1.作答時間 60 分鐘。若須計算或作圖,請利用本試卷的空白處。 2.本筆試試卷題目為選擇題 15 題,每題 4 分、填充題 10 格,每格 4 分。滿分為 100 分。 3.答案必須按題號依序填入「答案卷」上之空格內,否則不予計分。 4.本試卷共分 A、B、C、D 四個版本,作答前請先校對試卷與答案卷是 否為相同版本。 甲、選擇題部分:

題號

1

2

3

4

5

6

7

8

答案

B

B

B

B

A

A

A

C

題號

9

10

11

12

13

14

15

答案

A

B

D

A

D

C

A

乙、填充題部分:

題號

答案

題號

答案

16

1111

21

0

17

ABC*+DE/^FG-*

22

255.255.255.128

18

11

23

Rootkit

(10)

101 學年度台北市資訊學科能力競賽 A 卷

19

3

24

10

20

6144

25

10

(11)

台北市

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

程式設計試題

准考證號碼:

姓名:

USB 號碼:

測試主機帳號:

下表為評分用,請勿填寫

題目 幸運碼 code p&q 的邂逅 pairing 雲 端 平 台 任 務 排 程 oozie 纜線架設 cabling 總統大選 campaign 測試一 測試二 測試三 測試四 測試五 總分 總分

/ 100

選手簽名 評審

(12)

台 北 市 100 學年度高級中學資訊學科能力競賽 2 頁,共 9 頁

注意事項

一、此競賽採部分電腦線上自動評分,請嚴格遵守每一題目所規定之目錄、執行檔、輸入 檔、輸出檔之路徑、名稱及格式。若未遵守,該題將可以0 分計算。你可以用隨身碟 內之 check.exe 程式來檢查目錄、執行檔、輸入檔、輸出檔之路徑及名稱是否正確。 二、針對每一題所完成之程式,其執行時間以2 或 5 秒為限(請詳上表)。執行時間超過者 視同未完成,該題將以0 分計算。 三、競賽結束後,參賽選手應在指定的時間內與評審共同進行程式測試與評審作業。 四、競賽隨身碟中有4 個檔案列舉如下(假設隨身碟磁碟機代號為 D:\),分別為題目之 範例輸入檔。你可以將他們複製到C 槽相對應的目錄下,用以測試你的程式輸入格 式是否正確。 D:\pairing\input.txt D:\oozie\input.txt D:\cabling\input.txt D:\campaign\input.txt 五、請將你所寫的程式原始檔複製一份到USB 隨身碟中。但是評分時,將以電腦上 C 槽 相關目錄內之程式為評分依據,USB 隨身碟僅供備份及賽後檢測用。 六、第一題 (code) 並沒有資料需要自輸入檔讀入,測試資料已於題目中宣告,但仍須產 生輸出檔。此外本題提供線上評測機制,用以檢查答案是否正確。請先將答案複製 到一個純文字檔(.txt),再將該純文字檔上傳至線上評測主機進行驗證。兩次上傳驗 證之間必須間隔十分鐘以上。有關評測主機的詳細操作說明,請參考說明文件。 題目 幸運碼 code p&q 的邂逅 pairing 雲 端平 台 任務 排 程 oozie 纜線架設 cabling 總統大 選 campaign

目錄 C:\code C:\pairing C:\oozie C:\cabling C:\campaign 可執行檔 C:\code\code.exe C:\pairing\pairing.exe C:\oozie\oozie.exe C:\cabling\ cabling.exe C:\campaign\ campaign.exe 輸入檔 無輸入檔 C:\pairing\input.txt C:\oozie\input.txt C:\cabling\input.txt C:\campaign\ input.txt 輸出檔 C:\code\output.txt C:\pairing\output.txt C:\oozie\output.txt C:\cabling\output.txt C:\campaign\ output.txt

總分 20 20 20 20 20

執行時間

限制 2 秒 2 秒 2 秒 5 秒 2 秒

(13)

台 北 市 101 學年度高級中學資訊學科能力競賽 3 頁,共 9 頁

幸運碼(

code)

輸入檔:本題無輸入檔 輸出檔:output.txt 問題描述 在古老的傳說中,如果一個數字滿足下列的特質,便可以稱為一個幸運碼: (1) 若該數為一位數,且值為 1,則該數為幸運碼。 (2) 若該數為一位數,但值不為 1,則將該數改以其平方數取代,並由(1)重新開始 檢驗。 (3) 若該數為兩位數以上的數,則將該數改以其各位數的數字平方和取代,並由(1) 重新開始檢驗。 例如,1 是一個幸運碼,因為他滿足第一個條件;7 也是幸運碼,因為透過第二個條 件,我們先得到49,接著透過第三個條件,我們用該數的各位數的平方和取代原數, 我們可以依次得到97、130、10 以及 1 共四個數,透過第一個條件,我們因此得知 7 為一個幸運碼;然而,2 並不是一個幸運碼,因為透過上述的方法,我們並無法推導 到滿足第一個條件的結果。 依照上述的規則,我們可以得知前五個幸運碼依次為1, 7, 10, 13, 19。現在,請您設 計一個程式,在第一行輸出第10 個幸運碼,在第二行輸出第 50 個幸運碼,在第三行 輸出第100 個幸運碼,在第四行輸出第 1000 個幸運碼,在第五行輸出第 10,000 個幸 運碼。 註 1:第 10,000 個幸運碼介於數字 60,000 和 70,000 之間。 註 2:本題沒有資料需要自輸入檔讀入。測試資料已於題目中宣告,但仍須產生輸出 檔。此外本題提供線上評測機制,用以檢查答案是否正確。請先將答案複製到 一個純文字檔(.txt),再將該純文字檔上傳至線上評測主機進行驗證。兩次上傳 驗證之間必須間隔十分鐘以上。有關評測主機的詳細操作說明,請參考說明文 件。 輸入檔格式 本題無輸入檔。 輸出檔格式 (C:\code\output.txt) 共五行,請依序在每一行中分別輸出第10, 50, 100, 1000, 10000 個幸運碼值。

(14)

台 北 市 101 學年度高級中學資訊學科能力競賽 4 頁,共 9 頁

p & q 的邂逅(pairing)

輸入檔:input.txt 輸出檔:output.txt 問題描述 「眾裡尋他(她)千百度,驀然回首,那人卻在燈火闌珊處。」如果讓你當月下老人, 你能夠把看對眼的兩個有緣人盡量湊成一對,不要讓遺憾發生嗎?我們將給你一份等 候配對的名單,其中「p」代表男生,「q」代表女生,配對的條件很簡單,只要 p 跟 q 的位置是「面對面」(亦即「pq」),就代表彼此相看兩不厭,可被視為一對,其他 的狀態,如背對背(亦即「qp」、「p p」或「qq」,則不能配成對。成功配對後,該 pq 對就被移出等候配對名單,讓其他的 p 與 q 可以有機會繼續配對。你的目標就是 盡量找出所有可以配成對的 p 與 q。能否圓滿達成任務,就靠你智慧的安排!願天 下有情人終成眷屬! 輸入檔格式 (C:\pairing\input.txt) 第一行是一個整數n,代表有 n 組(行)的等候配對名單,n ≤ 10。每一組名單中,p 與 q 之間可能相鄰或者以「.」分隔,「.」的數量多寡不定,但不影響 p 與 q 的配對 (距離不是問題!),亦即除了 pq 以外,p.q、p....q 等都可以配成對。每行長度 不超過 256 字元。 輸出檔格式 (C:\pairing\output.txt) 輸出能成功配成對的最大總數,輸出的每一行對應一組等候名單。 輸入檔範例 2 ..p..p.p...q.q. .p...qq..p.pq.p..q.qpp..qpq 輸出檔範例 2 6 說明

ABCDEFGHIJKLMNO

..p..p.p...q.q.

H 位置的 p 與在 L 的 q 可以配對成 功,當他們被移開後,在 F 位置的 p 又 可以跟在N 的 q 配對成功,最後剩下在 C 位置的 p 無法找到可配對的 q。依此類 推,第二組配對名單中,用框線框起的 來的部份,就是最後仍無法配對成功的 p 與 q。 .p...qq..p.pq.p..q.qpp..qpq P.27

(15)

台 北 市 101 學年度高級中學資訊學科能力競賽 5 頁,共 9 頁

雲端平台任務排程(

oozie)

輸入檔:input.txt 輸出檔:output.txt 問題描述 近幾年來,因社群網路及 Web 2.0 等網路服務盛行,各服務藉由分析大量使用者 的瀏覽紀錄來了解使用者需求並提供更好的使用者經驗。為了處理海量的資料,目前 大部分使用 Hadoop 雲端計算平台來儲存及分析資料,將任務 (或程式) 程式派送到 資料中心每台電腦中進行運算。然而,複雜的資料分析往往需要執行一系列的任務才 能完成,oozie 程式開發者大多會使用 oozie 這套框架(Framework)來進行任務排程, 藉由以有向無環圖 (Directed Acyclic Graph; DAG)的方式來描述各個任務間的執行先

後順序來完成任務。因此,你的任務是要來判斷一個 oozie 的任務描述檔是否有環 (cycle) 產生。以 1->2->3->2->1 這個任務排程順序為例,在計數時共有 1->2->1, 2->3->2, 1->2->3->2->1 等三個環。 輸入檔格式 (C:\oozie\input.txt) 第一行有兩個整數,n 和 m,並以空白分隔。n 代表任務的總數(1 ≤ n ≤ 100),而 m 代表任務執行先後順序的數量(1 ≤ m ≤ 10,000)。接下來是 m 行,每行有二個數字 (A, B),代表任務 B 必須要等到任務 A 執行完後才能執行。任務名稱以正整數表示, 不一定會是連續整數,也就是有可能會跳號,最大數字不會超過 65535,如以下範例 1 所示。 輸出檔格式 (C:\oozie\output.txt) 第一行請印出找到幾個環。 第二行請將位於環上的各個任務依照數字大小以空白間隔輸出。若無環存在,則無第 二行輸出。 輸入檔範例 1 4 3 1 3 2 3 3 6 輸出檔範例 1 0 輸入檔範例 2 5 5 1 3 2 3 3 4 4 1 5 5 輸出檔範例 2 2 1 3 4 5

(16)

台 北 市 101 學年度高級中學資訊學科能力競賽 6 頁,共 9 頁

纜線架設(

Cabling)

輸入檔:input.txt 輸出檔:output.txt 問題描述 台北電信公司經常在企業用戶舉辦活動時,幫客戶在企業總部和活動地點之間架 設臨時纜線。由於市區內施工不易,通常必須先架設纜線塔於大樓的頂樓上方,再將 纜線懸掛在兩個纜線塔之間。然而由於市區內高樓林立,如果在兩棟大樓之間有高樓 阻擋時,纜線便不能直接懸掛,而必須在另一棟大樓的頂樓再架設另一個纜線塔來避 開阻擋。由於架設纜線塔的成本極高,我們希望盡量減少所需架設的纜線塔個數。請 注意: 新增設的纜線塔可以在任何一棟大樓上,不一定要在原本的兩棟大樓之間。為 了簡化問題,我們不考慮纜線塔本身的高度,而且不必考慮纜線重量造成在纜線塔之 間的下垂程度。 請找出可以架設最少個纜線塔來完成的方法。如果有超過一個的可行方案時,我 們將採用纜線成本總和最小的方案。纜線成本的計算方式如下: 若位置在(X1, Y1)的大 樓高度為H1, 位置在(X2, Y2)的大樓高度為 H2, 則纜線成本為: (X2-X1)2 + (Y2-Y1)2 + (H2-H1)2 然而精準預測是否有高樓阻擋兩棟大樓之間的纜線是困難的。因此台北電信公司 採取如下的纜線規劃方式。下圖中若纜線需連結位於(X1, Y1)和(X2, Y2)兩棟大樓的纜 線塔,且大樓高度為H1和H2,纜線通過的路徑則由(X1, Y1)出發沿 X 座標軸方向到 達(X2, Y1)後,再沿 Y 座標軸方向到達(X2, Y2) (如下圖陰影區所示)。請注意此路徑和 由(X2, Y2)出發的路徑不同,因此我們假設企業總部為纜線架設的出發點,以避免疑 義 。 於 此 路 徑 中 , 纜 線 經 過 任 一 棟 大 樓(X3, Y3)時的高度則以|X3-X1|+|Y3-Y1|和 |X2-X1|+|Y2-Y1|的比率內插計算,也就是: 1 2 1 2 1 3 1 3 1 2 1 ( ) Y Y X X Y Y X X H H H Hc − + − − + − × − + = 如果 Hc<H3,則表示纜線受到大樓的阻擋,因此必需另外新增纜線塔。反之,若 Hc ≧H3,則表示纜線可順利通過大樓上方。 (X1, Y1) (X2, Y2) (X3, Y3) P.29

(17)

台 北 市 101 學年度高級中學資訊學科能力競賽 7 頁,共 9 頁 輸入檔格式 (C:\cabling\input.txt) 第一行有一個整數N,代表城市的座標範圍為(0..N-1, 0..N-1)。N 的最大值為 64。 第二行有兩個整數,Sx 和 Sy,並以空白分隔。代表企業總部(起點)所在位置的座標。 第三行有兩個整數,Ex 和 Ey,並以空白分隔。代表活動地點(終點)所在位置的座標。 接下來有N 行,每行有 N 個整數,並以空白分隔。代表市區內每個座標位置大樓的 高度(高度皆大於0 且小於 1000),第一筆資料由座標(0, 0)開始,同一行依序為座標 (0, 0), (1, 0), (2, 0), …, (N-1, 0)的資料,直到該行結束。 輸出檔格式 (C:\ cabling\output.txt) 每筆測試資料輸出下列資料: 第一行為一整數K,代表所架設纜線塔的總數(包含起點和終點)。 第二行為一整數,代表纜線的成本總和。 接下來有 K 行,每行有兩個整數,代表所架設纜線塔的座標,第一筆資料為起點的 座標,接下來依序是路徑中纜線塔的座標,最後一筆為終點的座標。 所有測試資料都存在一組唯一的最佳解。 輸入檔範例 1 3 0 0 2 2 5 6 9 5 7 8 5 8 9 輸出檔範例 1 3 12 0 0 1 1 2 2 輸入檔範例 2 5 4 3 1 1 6 7 6 7 8 2 2 2 2 9 3 9 8 7 8 5 3 3 3 3 5 5 5 5 5 輸出檔範例 2 3 96 4 3 1 2 1 1

(18)

台 北 市 101 學年度高級中學資訊學科能力競賽 8 頁,共 9 頁

總統大選

(campaign)

輸入檔

: input.txt

輸出檔

: output.txt

問題描述 為了競選總統,總統後選人歐小馬的競選團隊正在研究怎麼使用最少的競選經費來宣 傳各種不同的競選政策,以達到目標選區的勝選門檻。但是每項政策在不同的選區會 有不同的效果。例如每花1 千元美金來宣傳「全民建保」時,在紐約州會失去 3 千張 選票,在亞利桑納州會增加2 千張選票,在加州會失去 2 千張選票;每花 1 千元美金 來宣傳「增加就業率」時,在紐約州會增加2 千張選票,在亞利桑納州則無影響,在 加州會增加1 千張選票;依此類推。然而為了使歐小馬能夠同時在所有選區勝選,競 選團隊精確的計算出每一選區若要勝選所需要增加的票數,例如紐約州5,000 千票以 上、亞利桑納州2,000 千票以上與加州 6,000 千票以上。 政策 紐約州 亞利桑納州 加州 全民健保 -3 千票 2 千票 -2 千票 增加就業率 2 千票 0 票 1 千票 禁止私人槍械 4 千票 -3 千票 1 千票 預估勝選所需增加票數 5,000 千票 2,000 千票 6,000 千票 為了計算方便,每項花費都是以「千元」為單位;同時為了達成真正的最小花費及計 算上的方便,分配在每項政策的金額可以有小數或分數(例如:500 又 1/6 千元使用 倍精度浮點數表示法為500.166666666666 千元)。請您為歐小馬的競選團隊設計一個 程式來計算要在 Y 個目標選區宣傳 X 項政策,則最少需要花多少金額來宣傳才能 使所有目標選區都能得到勝選? 條件限制 (1) 要宣傳的政策共有 X 項,且 1≤X≤50。 (2) 目標選區共有 Y 個,且 1≤Y≤50。 (3) 評分用的測試資料中, 甲、第一組測資其要宣傳的政策有2 項( X=2) ,且目標選區只有 2 個 ( Y=2) 。 乙、第二組測資其要宣傳的政策有2 項( X=2) ,目標選區不限(1≤Y≤50)。 丙、第三組測資其要宣傳的政策有3 項( X=3) ,且目標選區只有 3 個 ( Y=3) 。 丁、其餘測資宣傳的政策與目標選區不限( 1≤X≤50, 1≤Y≤50)。 戊、各州票數、政策影響票數、最終花費、目標票數等數字,皆在整數範圍內。 輸入檔格式 (C:\campaign\input.txt) 第一行有兩個整數,分別代表要宣傳的政策數X,及目標選區數 Y。接下來的 X 行 (每行代表不同的政策),每一行有 Y 個整數,每個整數以一個空白隔開,代表該政 策對 Y 個目標選區的得票數影響;第一個整數代表每花 1 千元宣傳的政策能增加或 減少第一個目標選區的得票張數(以千票為單位),第二個整數代表每花費 1 千元宣 傳的政策能增加或減少第二個目標選區的得票張數(以千票為單位),依此類推。接下 來的最後一行也共有 Y 個整數,第一個整數為第一個目標選區離勝選所需增加票數, 第二個整數代表為第二個目標選區離勝選所需增加票數,依此類推。 P.31

(19)

台 北 市 101 學年度高級中學資訊學科能力競賽 9 頁,共 9 頁 輸出檔格式 (C:\campaign\output.txt) 請根據輸入檔的資料,輸出要達到所有目標選區都能勝選的最小花費 (以千元為單位, 小數點第一位四捨五入至整數位),若是無法找出所有目標選區都能勝選的方法,則 輸出 -1。 輸入檔範例 1 3 3 -3 2 -2 2 0 1 4 -3 1 5000 2000 6000 輸出檔範例 1 9000 輸入檔範例 2 2 2 -2 5 8 -2 400 200 輸出檔範例 2 133

(20)

  1  

台北市

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

程式設計題解題說明

幸運碼(

Code)

本題測驗參賽者在程式中撰寫遞迴函數、以及擷取數字中每一位數的能力 ,並不需要使用特別的演算法。 本題共需產生五組輸出資料,若參賽者的程式未進行任何最佳化的動作, 將只能在限定的時間內答對第一個子題。 若要能答對第二和第三個子題,參賽者的程式必須另外設計一個儲存運算 結果的資料結構(例如Array),並確保每一個數字只會進行最多一次的幸 運碼驗證。 若要能答對第四和第五個子題,參賽者的程式除了必須確保每一個數字只 會進行最多一次的幸運碼驗證外,尚必須以最精簡的方式,存取與使用程 式中用來儲存運算結果的資料結構。亦即,針對每次的驗證動作,只存取 驗證過程中牽涉到的數字即可,避免存取該資料結構中所有數字的資料。    

p  &  q 的邂逅(Pairing)  

本題等同於檢查左右括號對應的問題,學生如果有堆疊(Stack)概念的話 ,即可輕鬆解決這個問題,即使不是十分瞭解堆疊,亦可以宣告一個整數 變數(模擬堆疊效果,初值為 0)來存放遇到「p」的次數,亦即當遇到「 p」時,讓變數加 1,遇到「q」時,如果變數值不為 0(表示前面出現過「 p」),便減去 1,這就表示完成一次配對,最後累計完成的配對數就是答 案。    

雲端平台任務排程(

oozie)

 

 

本題可用graph 的資料結構及相關 Spanning Tree 演算法來解。首先先將輸 入資料以Directed Graph 資料結構記錄,再利用 Depth-First Search (DFS)來 走過整個graph 並產生 Spanning Tree。在 Spannin Tree 上,若有 Back Edge 即表示有環出現,利用堆疊來儲存已經走過的 node,即可將環上每個 node 給標示出。會出現在環上的 node, 一定存在有 in-edge 和 out-edge 與其它 node 相連;亦或是有 self-loop 的 edge 存在。反之,若一個 node 只有 in-edge 或 out-in-edge,則此 node 絕不會包含在某個環中。

 

(21)

  2  

纜線架設(

Cabling)

首先,我們可以檢查任意兩棟大樓之間是否可以直接懸掛纜線,依此資訊 來建立一個 graph,其中 graph 的端點代表每一棟大樓,而兩棟大樓之間可 以直接懸掛纜線的話,則將兩個端點以graph edge 連接。因為有 N2棟大樓 ,而檢查兩棟大樓之間是否可以直接懸掛纜線所需時間為 O(N),建立 graph 所需時間為 O(N5)。 如此一來,本題就成為找尋最短路徑的問題。例如,我們可以從起點開 始,逐步擴展到K 個纜線塔所能到達的所有大樓(K>1)。

總統大選(

Campaign)

    本題可以使用 Linear Programming 來解。解題的第一步要先把問題轉成 maximazation problem,然後再把它變成 standard form,再變成 slack form, 接下來使用 simplex algorithm 來解題。但是在 X 很小的情況下,可以有較 為簡單的解法:若 X=2 ,可以解平線線性規畫的線性最佳解,若是 X=3,

則可以用線性規畫的平面最佳解。但是在 X>=4,就必須使用 Linear

(22)

臺北市 101 學年度高級中學資訊學科能力競賽

命題委員暨助理評審名單

命題委員:

助理評審:

陳伶志 教授

李胡禎

張鈞法 教授

王瑩婷

張原豪 博士

楊明昌

簡培修 博士

陳紹中

蘇中才 博士

許雅淳

P.35

參考文獻

相關文件

上項資料本人同意提供中華民國殘障體育運動總會(簡稱殘總)辦理此項賽事及有關此

審查整理呈現資料:蒐集到的資料應先審核 是否完整、正確、合理與一致,然後利用敘

sort 函式可將一組資料排序成遞增 (ascending order) 或 遞減順序 (descending order)。. 如果這組資料是一個行或列向量,整組資料會進行排序。

 想要設計一個具有兩個輸入G(gate閘控)和 D(data資料)以及一個輸出Q的閘控閂電 路。當G等於1時,在輸入D出現的二進位資料

討論結束,整理腦圖。首先嘗試將資料歸類,然 後可以開始收窄範圍,定出文章中心,再按照重

left

 試著將投影片第 12 頁的範例加上 critical section ,解決 race

利用 BeautifulSoup 將網頁資料以 html.parser 儲存 (