第一題:星期六問題(題目代碼: SAT)
15
0
0
全文
(2) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 2010/9/20 (一). 範例一 輸入 3 0 輸出 yes 1 1 1 範例二 輸入 3 4 1 1 2 1 1 2 2 3 1 2 1 3. 1 2 1 1. 輸出 yes 2 1 2. 數據範圍 有 40% 的測試資料 2 ≦ N ≦ 5 且 0 ≦ M ≦ 10。 對於全部 100% 的測試資料 2 ≦ N ≦ 16 且 0 ≦ M ≦ 72。. (共 15 頁,此為第 2 頁). 台北市立建國高級中學資訊科. 編製.
(3) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 第二題:房屋運動. 2010/9/20 (一). (題目代碼: HOU12). 你跟大鈞回到了公司,開始過著平和的生活。 你考量到員工的健康,決定在每天早上把員工集合起來做運動。 而運動的項目就是大鈞的成名絕技:滾來滾去! 可是要如何實行呢?於是你想了一個方法,在第一次運動時跟員工說明: 「為了你們的健康,我決定要讓大鈞教你們滾來滾去 LV1!」 「汪!」在一旁的大鈞附和著。 「恩…還是我來說明好了,為了讓大家都能運動到,你們要先排成一列!」 「汪!」 「然後每個人剛開始可以決定要向左或向右滾,如果撞到了別人,就往另一 個方向滾,直到滾出界外就可以去上班了!」 「嗷嗚~!」 想當然爾,每個員工都想越早結束這個愚蠢的運動越好,但是有些員工無法 改變自己的習慣,剛開始一定要向左或向右滾。 給你這些員工的資訊,請輸出至少要多久才能讓全部員工結束這愚蠢的運 動。 P.S.可以假設所有員工的速度都保持不變,1 單位的時間可以前進 1 單位的 距離。. 輸入說明 第一行有三個數字 n,L,R,代表你公司有 n 個員工,每個員工剛開始的位置 都在 L 和 R 之間(最左邊的數字的 L,最右邊的是 R,且 L<R),滾出去就算到界 外可以去工作了。 接下來有 n 行描述每個員工,每行有兩個數字 xi 和 vi,xi 代表該員工的位 置(L<xi<R),vi 如果是 1 的話代表該員工剛開始一定是向左滾,vi 如果是 2 的話代表該員工剛開始一定是向右滾,vi 如果是 0 的話代表該員工剛開始怎麼 滾都可以。(可以假設剛開始每個員工的位置都不同). 輸出說明 請輸出至少要多久才能讓所有員工做完運動。. (共 15 頁,此為第 3 頁). 台北市立建國高級中學資訊科. 編製.
(4) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 2010/9/20 (一). 範例一 輸入 2 0 9 4 2 6 1 輸出 6 範例二 輸入 1 1 9 4 0 輸出 3 範例說明 第一筆範例說明: 兩個員工會在 5 相撞,所以第一個員工的路線是 4->5->0,需要時間是 6; 第二個員工的路線是 6->5->9,需要的時間是 5,所以至少要 6 的時間才能讓 所有員工都滾出界。 第二筆範例說明: 如果那員工向左滾,路線是 4->1,需要的時間是 3;向右滾路線是 4->9, 需要的時間是 5,所以至少需要 3 的時間才能讓該員工出界(也就是向左滾)。. (大鈞的示範) (共 15 頁,此為第 4 頁). 台北市立建國高級中學資訊科. 編製.
(5) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 2010/9/20 (一). 數據範圍 在 10%的測資中 0<n≦2 在 100%的測資中 0<n≦10000 在 40%的測資中 vi 不會有 0 在 50%的測資中 0≦L<R≦1000000000 在 100%的測資中 0≦L<R≦10100. (共 15 頁,此為第 5 頁). 台北市立建國高級中學資訊科. 編製.
(6) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 第三題:城市旅遊問題. 2010/9/20 (一). (題目代碼: ROUTE). 建中國有 N 座城市,其中有一些道路可以作為聯絡兩座城市之用。對於每 一個城市,為了方便起見,我們將他們依序編號成 1 到 N 的正整數;而對於每 一條聯絡道路,都是「雙向」的且恰好可以聯絡兩座城市 Ai 和 Bi,意即可以 利用該條道路從城市 Ai 到達城市 Bi,也可以從城市 Bi 經由這條道路到達城 市 Ai。 由於在這個國家的城市之間充斥著許多聯絡道路,因此喜歡思考的曉涵就產 生了一個疑問:「如果我要從城市 S 前往城市 T,並且規定恰好要走過 K 條聯絡 道路的話,有幾種走法呢?」(同一條連絡道路走過 n 次視為走過 n 條道路) 為了簡化題目,我們可以忽略城市內的交通網路,你可以將每個城市當作一 個中繼站,一旦進去馬上出來且城市內複雜的子道路將不應該被計算在經過的道 路數中(其實你也不會知道 :P )。 此外,在經過 K 條路後恰好到達終點城市 T 之前經過城市 T 是被允許的, 這種可能也應該被計算進去。 最後,一條邊可以重複走很多次不會毀損或壞掉。. 輸入說明 對於每一筆測試資料,第一行有五個整數 N、M、S、T、K,之後有 M 行, 每一行有兩個整數 Ai、Bi,代表每一條道路所連接的城市編號。. 輸出說明 請輸出一個整數 R,代表從起點到終點且符合條件的走法數 (路徑數) 除以 1000000009 的餘數。. 範例一 輸入 3 2 1 3 2 1 2 2 3 輸出 1. (共 15 頁,此為第 6 頁). 台北市立建國高級中學資訊科. 編製.
(7) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 2010/9/20 (一). 範例二 輸入 4 3 1 3 3 1 2 2 3 1 4 輸出 0. 數據範圍 有 10% 的測試資料 2≦N≦5 且 M=N-1 且 0≦K≦10。 有 30% 的測試資料 2≦N≦50 且 M=N-1 且 0≦K≦1000。 有 50% 的測試資料 2≦N≦50 且 0≦M≦2N+1 且 0≦K≦1000。 有 70% 的測試資料 2≦N≦100 且 0≦M≦50000 且 0≦K≦1000。 對於全部 100% 的測試資料 2≦N≦100 且 0≦M≦50000 且 0≦K≦1015。. (共 15 頁,此為第 7 頁). 台北市立建國高級中學資訊科. 編製.
(8) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 第四題:房屋裁員. 2010/9/20 (一). (題目代碼: HOU13). 過了幾年,因為你太過寵愛大鈞了,所以你的公司快被吃垮了。 為了讓公司繼續營業,身為董事長的你必頇做出對策。 雖然說把大鈞從窗外丟下去就沒事了,但你回想起之前跟他冒險的種種經 歷,而不忍心下手。 於是,你就找了別人來動手。 於是,你決定對公司的員工進行裁員。 當然,裁員當然要根據每個員工對公司的貢獻來決定該解決掉誰,你要做的 就是留下一些員工讓公司的總效益越大。 可是,人是有朋友的,有些人會因為朋友離開公司而辭職,這也必頇列入你 的考量之中。 現在,給你每個員工留下的利益和每個員工間的關係,請求出你炒了一些員 工之後,所留下最大的總利益。. 輸入說明 第一行有兩個數字 n 和 m,代表你公司有 n 個員工(編號為 1~n),員工之間 有 m 條關係。 接下來有 n 行,每行一個數字 ci 代表編號為 i 的人留在公司會造成多少收 益;再下來有 m 行,每行兩個數字 ai,bi 代表 ai 離開公司的話 bi 也會跟著離開 公司。. 輸出說明 請輸出經過裁員後,公司剩下員工收益的最大總和。. 範例一 輸入 4 3 -1 -3 5 2 1 2 1 3 (共 15 頁,此為第 8 頁). 台北市立建國高級中學資訊科. 編製.
(9) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 2010/9/20 (一). 2 4 輸出 4 範例二 輸入 4 4 -1 -3 5 2 1 2 1 3 2 4 2 3 輸出 3 範例說明 第一筆範例說明: 留下 1、3。 第二筆範例說明: 全留。. 數據範圍 在 50%的測資中 對於任兩對關係 ai,bi 和 aj,bj,我們保證 bi 不會等於 bj,且 ai<bi。 在 80%的測資中 n≦500,m≦2000 在 100%的測資中 n≦8000,m≦50000 在 20%的測資中 0<ci≦100000 在 100%的測資中 -100000≦ci≦100000. (共 15 頁,此為第 9 頁). 台北市立建國高級中學資訊科. 編製.
(10) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 2010/9/20 (一). 後記 經過適當裁員之後,公司只剩下了你和大鈞,然而,這並不是結束,只是一 個開始。. (你為了裁員所請來的專家們). (共 15 頁,此為第 10 頁). 台北市立建國高級中學資訊科. 編製.
(11) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 第五題:奇異熱狗. 2010/9/20 (一). (題目代碼: KIWI). Surwigo 最近開了一個新的工廠--奇異公司,主要是要把奇異果加工製成 奇異狗(奇異果口味的熱狗)。其運作方式如下: 一開始會接到許多的訂單,代表每天需要出口奇異狗的量。當然,沒有奇異 果當材料是無法做出奇異狗的,所以奇異公司必頇要適時的花錢買進奇異果。我 們可以先假設一個奇異果恰好可以加工成一根奇異狗,而且當天拿到的材料當天 就可以製成奇異狗並且出售。但是不論是奇異果或是奇異狗都不能放在室溫下超 過一天,如果想要保存就必頇花費一些冷藏的費用。當然冷藏保存也是有期限, 一旦超過 T 天,奇異果或奇異狗就會壞掉。 身為奇異公司專業顧問的你,打算分析一下奇異公司對於接下來幾天的開銷 最少是多少,因此找了接下來 N 天的資料:每天的訂單數量(A1...An 根)與每 天購買一顆奇異果要花多少錢(C1...Cn 元),還有每天冷藏一顆奇異果或奇異 狗要花多少錢(S 元),與奇異果跟奇異狗的保存期限(T 天)。問你在滿足所有 訂單需求的情況下,最低花費是多少?. 輸入說明 輸入包含三行,第一行有三個數 N,T,S,分別代表接下來有 N 天的資料,奇 異果/狗的保存期限,與每天冷藏一顆奇異果/狗要多少錢。 第二行包含 N 個數,代表 A1,A2,...,An,代表每天的訂單數量。 第三行包含 N 個數,代表 C1,C2,...,Cn,代表每天買一顆奇異果要多少錢。. 輸出說明 輸出一個數,代表在滿足以上訂單的情況下,至少要花多少錢。. 範例一 輸入 5 10 3 1 1 4 1 7 7 8 6 2 3 輸出 62. (共 15 頁,此為第 11 頁). 台北市立建國高級中學資訊科. 編製.
(12) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 2010/9/20 (一). 範例二 輸入 10 3 20 12 18 16 14 1 5 17 1 1 8 11 5 9 7 5 5 2 11 18 7 輸出 613. 數據範圍 0≦A1~An≦1000 1≦C1~Cn≦1000 1≦S≦1000 其中 60% 的測試資料滿足 1≦N*T≦108。 其中 30% 的測試資料滿足 N≦T。 對於所有 100% 的測試資料滿足 1≦N≦1000000 且 1≦T≦1000000。. (共 15 頁,此為第 12 頁). 台北市立建國高級中學資訊科. 編製.
(13) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 第六題:網頁分析. 2010/9/20 (一). (題目代碼: HTML). 網際網路這幾年來在世界上蓬勃發展,人們的生活漸漸與網路密不可分。我 們寫的程式除了要能在本機上處理問題,也與網路溝通的功能也漸漸的被需要。 其中與網路對話的一個很簡單的方式,就是下載網頁、分析網頁來執行這項操作。 當然我們在這個問題中不會要求你去下載一個網頁,而是要你去做分析的功 能。下載網頁的方式通常不困難,難的在於處理網路上的資料。 下面給你一個線上評測系統(Online Judge)的 submission list 網頁,你需 要做的事情是:把所有 submission 的資料取出來,並且輸出 AC 最多的那個人。 網頁的格式如下: 1. 一筆 submission 的資料會是一行,其中依序包括有 *編號. (正整數)<100000. *使用者 ID. (包含英文字跟數字或 _ )長度<30. *題目編號. (正整數)<10000. *評測結果. (Accepted,Wrong Answer,...我們其實只關心 Accepted 的訊息)字串長度<20. *執行記憶體用量. (如果是 AC 則是"整數+K",否則是" ") 在 int 範圍內. *執行秒數. (如果是 AC 則是"整數+MS",否則是" ") 在 int 範圍內. *編譯器名稱. (一串英文字)長度<10. *Code 長度. (浮點數+K). *傳送時間. (年-月-日 時:分:秒). 例如: 50216, TestName_01, 1001, Accepted, 9020K, 200MS, G++, 3.14K, 2010-02-28 23:59:59. 我們可以假設一筆 submission 的資料一定包函上述所有資訊,而且不會有 其他不相關的資訊,而且任何資訊開頭或結尾都不會是空白字元。. 2.但是網頁中還會有許多的 tag,所有的 tag 都是以小於(<)大於(>)符號 刮起來的,且不會有<>裡面只有>或<的情形(意思是 tag 一定合法) ,而 tag 中內容是什麼我們並不關心。 (共 15 頁,此為第 13 頁). 台北市立建國高級中學資訊科. 編製.
(14) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 2010/9/20 (一). 3.而在上面每筆資料之間會出現不一定數量的 tag,但是任何資訊與 tag 間都不 會有多餘的空白(例如:<a> 123</a>) ,也不會有巢狀 tag 出現(例如:<.. <..>..>),可是 tag 間不一定會有資訊。. 4.我們關心的永遠只有 submission 的行,且他們總是且只有他們是以"<tr align=center>"開頭(不包含引號,但是這個字串前面可能有空白) 。對於其他 不是 submission 的行一律無視。. 我們現在就給你這樣子的一個網頁,希望你能求出,所有 submission 中, Accepted 最多的人是誰,並且 Accepted 了幾題(重覆的題目重覆算) 。 (如果有 相同題數,請輸出 ID 字典順序最小的那個人). 輸入說明 包含一個滿足上述格式的網頁,我們保證一定至少會有一筆 submission。 每行長度最長不超過 2000 個字元。 總共的 submission 不超過 10000。. 輸出說明 輸出 Accepted 最多的使用者名稱與 AC 的題數(重覆的題目要算),如果有 相同題數,請輸出 ID 字典順序最小的那個人。輸出格式參考範例輸出。. 數據範圍 對於所有 100% 的測試資料滿足:每行長度最長不超過 2000 個字元 且總共的 submission 數不超過 10000。. (共 15 頁,此為第 14 頁). 台北市立建國高級中學資訊科. 編製.
(15) 2010 年建國中學資訊科學科能力競賽 程式設計試題卷. 2010/9/20 (一). 範例一 輸入 <html>XDrz...This is an apple!! <tr align=center><td>50216</td><td><a>TestName_01</a>< /td><td><a>1001</a></td><td><font color=blue>Accepted< /font></td><td>9020K</td><td>200MS</td><td>G++</td>< td>3.14K</td><td>2010-02-28 23:59:59</td></tr> EndEndEnd~~~~~</html>. 輸出 TestName_01: 1 範例二 輸入 <html>XDrz...This is an apple!! <tr align=center><td>50216</td><td><a>TestName_01</a>< /td><td><a>1001</a></td><td><font color=blue>Accepted< /font></td><td>9020K</td><td>200MS</td><td>G++</td>< td>3.14K</td><td>2010-02-28 23:59:57</td></tr> <tr align=center><td>50217</td><td><a>FastName_01</a>< /td><td><a>1001</a></td><td>Accepted</td><td>9020K< /td><td>200MS</td><td>G++</td><td>3.14K</td><td> 2010-02-28 23:59:58</td></tr> <tr align=center><td>50218</td><td>TestName_01</td>1001<td ><font color=red>Wrong Answer</font></td><td> </td>< td> </td><td>G++</td><td>3.14K</td><td>2010-02-28 23:59:59</td></tr> EndEndEnd~~~~~</html>. 輸出 FastName_01: 1. (共 15 頁,此為第 15 頁). 台北市立建國高級中學資訊科. 編製.
(16)
相關文件
營隊課程特色 2 • 邏輯訓練 -- 邏輯急轉彎活動:個人,透過四個有趣的邏輯遊戲,訓練學員 數理、幾何與空間的能力 • 競賽中學習 -- 整個營隊以闖關打怪為課程骨幹, 每一個關卡都會 針對每 位學生所完成的打怪目標記錄獎勵 積分 ,只要學生在程式實作中,完成老師 所要求各項指令應用以及特效等打怪目標,都會算入獎勵積分。同時,每一
會匹配之後我們來分析一下他的複雜度,很明顯的如果是考慮每個地方最多迭代幾次的 話,那有可能迭代Om次,想當然爾,這樣會變成Onm。然而這是從部分來看,從整體 來看的話,你會發現到每次k只可能+1,因此k最多只可能減少n次,第7行的while操 作也只可能執行n次,因此最差就是On。預處理的估計也類似,所以只有Om,因而KMP 的整個複雜度為On+m。 §3‐4