• 沒有找到結果。

105北市軟體競賽高中組

N/A
N/A
Protected

Academic year: 2021

Share "105北市軟體競賽高中組"

Copied!
6
0
0

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

全文

(1)

臺北市一 O 五學年度高級中等學校電腦程式設計競賽決賽試題

(高中組)

說明: 1. 本試卷共有四題,每題 25 分。 2. 請記得隨時備份自己的程式。

試題 1:送愛心到非洲

問題敘述

非洲某一個偏僻的部落發生大旱災,當地居民巴布為了拯救同胞決定參加勸募大 行動。巴布手中有一份地圖,如下圖: 在此地圖上記載著附近部落間道路直接連結的情況,而走完任一條連結相鄰部落 的道路剛好都需要花 1 小時。而募款進行的規則如下: (1) 每一條連結相鄰部落的道路必須要走完全程才能募到一定金額(否則為 0), 不能半途折返。例如,在上圖中從部落 3 走到部落 4 可募得 3 單位金額(而 反方向從部落 4 走到部落 3 同樣也可募到 3 單位金額)。 (2) 每一條道路可以重複行走多次;但每走完一次後,下次走完所募得金額則 會減少 1 個單位金額(當為 0 單位金額時就不再減少)。例如,連結部落 3 到部落 4 的道路在第一次走時,由部落 3 走到部落 4 可募得 3 單位金額; 而再從部落 4 走到部落 3(第二次走此道路)則僅能募得 2 單位金額。 根據上圖,假設巴布勸募時經歷的部落(以數字代號表示)順序為 1→4→2→4→2→4 →3,則總共勸募到的金額為 1+2+(2-1)+(2-1-1)+(2-1-1)+3=7,總共花費時間為 1+1+1+1+1+1=6 小時。請寫一個程式幫巴布計算他由某部落出發、在一定時間內 最多可以勸募到多少單位金額。 輸入說明 第一行輸入有 4 個整數值 m (1≦m≦100)、s (1≦s≦100)、t (1≦t≦100)、n (3≦n ≦200),都以空格間隔。其中 m 代表部落數目,s 代表勸募行動一開始出發的部落

(2)

代號,t 代表整個勸募活動總共進行的小時數,n 代表直接連結相鄰部落的道路數(假 設任兩個相鄰部落最多僅有一條道路連結它們)。 從第二行起共有 n 行,每一行有 3 個整數;前 2 個整數代表有一條道路直接連結 之兩個部落的代號,其值都介於 1 到 100 之間;而第 3 個整數代表第一次走完此 道路可以勸募到的單位金額。 輸出說明 為一個整數值,代表依據輸入條件而最高能勸募到的單位金額。 輸入範例一 輸出範例一 7 1 5 6 1 4 1 2 4 2 3 4 3 4 5 3 5 6 2 5 7 1 11 輸入範例二 輸出範例 4 1 8 3 1 2 1 2 3 2 3 4 3 10

試題

2.

故障的儲存裝置

問題敘述

隨著半導體技術快速地演進, 大容量的資料儲存裝置運用量子井儲存的電荷 來儲存資料, 假設如上圖有一個裝置上有一列資料儲存的單元, 存放一定數量以 上電荷代表存放的資料是 ‘1’, 否則代表存放的資料是 ‘0’, 這個裝置上因 為存放單元的密度很高, 所以資料讀取和寫入的電路只設計在兩個端點位置上, 要讀取資料時可以對任意一個資料單元執行移動的指令, 把想要讀取的資料移到 讀寫位置上才能夠順利讀取, 這樣的移動不會影響到其他單元裡存放的資料。 這個裝置運作一段時間以後隨著工作次數增加而逐漸老化, 本來資料可以任

(3)

意向左或是向右移動指定的距離, 變成不管什麼命令都只能依照它的意思向左或 是向右移動, 每次執行移動指令時移動多少格的命令也不聽話了, 右邊的讀寫頭 也壞了, 現在不管下怎樣的移動命令時資料都依照一個機率分佈來移動, 而且它 會自己紀錄移動的方向, 依照這個方向移動, 移出端點時會自動反向彈回來。例 如某一個有 10 個存放單元的裝置, 對其中的編號 4 的單元下移動指令以後, 假 設目前是向右移動, 移動一格到編號 5 的機率是 0.7, 移動二格到編號 6 的機 率是 0.2, 移動四格到編號 8 的機率是 0.1; 假設資料移動到編號 8 了, 繼續 對它下移動指令時, 還是向右移動, 移動一格到編號 9 的機率是 0.7, 移動二 格遇到端點會彈回到編號 8, 這個機率是 0.2, 而且方向會變成向左移動, 移動 四格遇到端點會彈回到編號 6, 這個機率是 0.1, 而且方向會變成向左移動, 此 時繼續下移動指令時就是向左移動了; 方向往左時到了左邊端點一樣會改變方向 彈回; 為了要評估一下運用軟體來搶救上面資料的可行性, 希望你撰寫一個程式 來計算平均要下多少次的移動指令才能夠把指定的一個資料單元移到左側讀寫電 路的位置上 (編號 0)?

輸入輸出說明

程式的輸入描述如下: 程式輸入: n s d m p1 p2 p3 p4 … pm 上面輸入資料代表有 n 個存放單元的儲存裝置, 指定要移動的資料單元編號是 s, d 是這個資料單元目前的資料移動方向, 0 代表向右, 1 代表向左, m 是移 動的最大步數, p1 p2 p3 p4 … pm 是 m 個機率值, 總和為 1.0, pi 為移動 i 格 的機率。 程式輸出: 程式的輸出描述如下: steps 輸出資料 steps 為平均將資料單元 s 移到左側讀寫電路位置上的移動格子數 (小 數點後請輸出 4 位數, 第 5 位以後四捨五入)。如果無法到達請輸出 -1; 實際測 試資料中參數的範圍如下:4n300, 0sn-1, d 為 0 或 1, 1mn, 0pi1, 時 間限制 3 秒。 範例輸入: 4 2 0 2 0.60 0.40 範例輸出: 6.3482 範例輸入: 4 2 1 1 1 範例輸出: 2.0000

(4)

範例輸入: 4 3 1 3 0.5 0.0 0.5 範例輸出: 7.7143 範例輸入: 4 3 1 2 0 1 範例輸出: -1

試題 3. 特務迷城

問題敘述

龐德是一位很傑出的特務,這次他接受的任務是潛入敵方陣營,並在指定的地點 引爆炸藥。他已經取得敵人陣營的平面圖,他必須從指定的位置潛入,並從指定 的位置脫身。引爆點可能不只一個,他必須規畫好引爆的路線,以便用最短的路 程完成任務並離開。 ....D ... ..XXX ....X ..XXS  ....D ... ..XXX ... ..X.S  .PPPP .P... .PXXX .PPPP ..X.P (a) (b) (c) 圖一 以圖一(a) 為例,符號.代表通道,符號 X 代表牆壁,符號 S 代表潛入點,符 號 D 代表脫身點。龐德首先會在潛入點引爆炸藥,炸藥會清除周圍八格牆壁,如 圖一(b)。引爆後,龐德便可前往脫身地點,如圖一(c),總路程長為 10。 ....D XXX.. .@XXX ....X @.XXS  ....D XXX.. .@XXX PPPPP P.X.P  ....D XXX.. PPXXX P...X P.XX.  .PPPP .P... .P.XX ....X ..XX. (a) (b) (c) (d) 圖二 以圖二為例,符號 @ 代表除了潛入點和脫身點之外還有兩個引爆點。圖 (b)-(d) 顯示先往 (4, 0) 引爆點,再往 (2, 1) 引爆點,最後抵達脫身點的結果。此走法的 總路程長為 6+3+5 = 14。如果先往 (2, 1) 再往 (4, 0),其總路程長為 5+3+8 = 16。 所以龐德應該選第一種走法。

(5)

身為龐德的伙伴,你的任務就是寫出程式幫助他找出可完成任務的最短路徑。 (只需輸出路程長度。)

輸入說明

輸入的第一行為一個整數 n (n 15),代表敵人陣營為 n n 的土地。接下去 有 n 行,代表敵人陣營的地圖,地圖中僅有兩種符號 . (通道)和 X (牆壁), 符號相鄰,即中間沒有空白。最後會有 K (K 10) 行,每行有兩個整數 xk 與 yk (0  xk, yk n–1, 1 k K )。其中第一行代表潛入點 (x1, y1) (此處也會引爆炸藥), 最後一行代表脫身點 (xK, yK),剩下的為其餘的引爆點。

輸出說明

請輸出可完成任務的最短路徑長。

輸入範例

輸入範例一 輸入範例二 5 ... ... ..XXX ....X ..XX. 4 4 0 4 5 ... XXX.. ..XXX ....X ..XX. 4 4 2 1 4 0 0 4

輸出範例

輸出範例一 輸出範例二 10 14

試題 4. 找費式數(Fibonacci number)

問題敘述

費式(Fibonacci)數為以下數列中的數字,這些數字的特點是每一個數都是前二 個數的和,一直到無窮大,其中的第零項及第一項分別為 0 及 1。 n 0 1 2 3 4 5 6 7 8 9 10 … Fn 0 1 1 2 3 5 8 13 21 34 55

(6)

費氏數列奇妙地出現在自然界中,許多樹枝的分枝數,花的花瓣數都是費氏數, 如百合花為 3,梅花為 5,桔梗花常為 8,金盞花為 13,向日葵常見的螺線數為 34 及 55,較大的向日葵的螺線數則為 89 及 144,其皆為費氏數。對這個奇妙的數列, 我們想知道在特定的兩個整數 a, b (ab)所構成的區間[a, b]內有多少個費式數(注意: 此區間含 a 與 b),譬如:[1,1]區間有 2 個費式數,[1,2]有 3 個費式數,[3,4]有 1 個 費式數,[4,9]有 2 個費式數。請寫一個程式來達成這個目標。

輸入說明:

輸入包含數組測試資料,每組有兩個非負整數 a 跟 b,ab10100,當 a=0 且 b=0 時表示輸入資料結束。

輸出說明:

(顯示在螢幕上) (程式必須在 1 秒內執行完畢,否則不計分) 對每組測試資料 a, b,以一行顯示 a, b 兩數區間內有多少個費式數。(亦即假 設 Fi表示費式數,有多少個 Fi符合 aFib) 輸入範例: 1 1 1 2 1 10 50 100 123456789 987654321 0 0 輸出範例: 2 3 6 2 4

參考文獻

相關文件

0.5mL Flublok 四價流感疫苗 2-8℃冰箱儲存,使用前先回溫及搖勻 VAX03 (CDC)Vaxigrip Tetra.. inj 0.5mL Inactivated

隨身碟是一種攜帶方便的電腦儲存裝置。若浩南有一個容量為 8GB

五、依據保有資料之重要性,評估有備份必要時,予以備

RiOs 是生產第三型 (Type III)純水的純水系統。Elix Essential 是生產第二型 (Type II)純水的純水系統。如果安裝有純水儲水桶,產水可儲存在純水儲水桶中。. 總而言之,Elix

有學生的作 有學生的作 有學生的作 有學生的作 品未能儲存 品未能儲存 品未能儲存 品未能儲存 老師的信.. 老師的信 老師的信 老師的信

(一)備妥書面資料及相關電子檔(以光碟片或隨身碟儲存)以掛號方式郵寄本部勞動 力發展署技能檢定中心職類開發及基準科收(地址:40873 臺中市南屯區黎明路 二段

界面活動 主體活動 界面活動 產品運送 運輸 顧客服務 排程 存貨管理 水準 廠房位置 訂單流程 通路規劃 採購作業 倉儲

 點擊按鈕「Rollover」,工作表便會剪下紅色線以下的資料並複 製至綠色線以下的儲存格。