【測驗M06】 [回前頁]
試題一、編碼問題:乘2再加1
編碼與解碼,是個有名的問題,可以應用在壓縮或是安全系統中,現在假設有一個編碼系統是「乘2加1」,當然,若要作解碼,則是「減1後再除2」,例如某個英文字母A, 因為他的ASCII的編碼是65, 所以乘2加1後,就變為131,同理:英文字母C, 因為他的ASCII的編碼是67, 所以乘2加1後,就變為135,而英文字母b編碼後變為197。
【輸入檔案格式】
先是一個整數N,代表以下有N個樣本,接下來是N行測試的輸入樣本,每行是一個大寫或是小寫的英文字母。
【輸出檔案格式】
每個樣本就有一行的輸出,印出編碼後的數字。
【輸入檔案範例】
3
A
C
b
【輸出檔案範例】
131
135
197
試題二、王建民的好球與壞球
旅美球星王建民,首度在美國職棒大聯盟上場,是對上多倫多藍鳥隊,表現沉穩,幾度化險為夷,充份表現大將之風。洋基最終以4:3險勝藍鳥,雖然,結果王建民無勝負記錄,但是他的整體表現已算不錯。第二場比賽,是對上魔鬼魚,一上場,王建民就手軟,面對第一棒投出4壞保送,結果在後來的盜疊及安打中,先失1分!直到投完六局才換上中繼投手,雖然只被打出八支安打,但是失了5分!不過王建民的首度大聯盟三振也終於出爐,而且總共三振了3名球員,後來由於打擊火力不夠,終場以2:6敗陣,王建民只好吞下第一場敗投。讓我們繼續為中華健兒的表現加油!
現在如果在賽前,可預知投手的配球,且假設打擊都不會打出安打,那單純由好球與壞球的配球來判斷到底球賽的結果如何?我們用O表好球。用X表壞球,而且是只要累計達3個好球(O),就算一人出局,或累計達4壞球(X),就一人上疊,請問看到所有的配球後,可知已幾次四壞保送,又有幾次三振出局呢?要注意的是,若已累計達3好,或是4壞,則要重計算,而且最後未成三好或四壞則忽略之。例如:
OOXXOOOOXXXOXOXXOOè OOXXO(3好)OOO(3好)XXXOX(4壞)OXXOO(3好)
è結果是3人出局(Out),1人保送(Free)。輸出結果是:3Out,1Free
OXXOXXOXOXXOOè
OXXOXX(4壞)OXOXXO(3好)O(未知)
è結果是1人出局(Out),1人保送(Free)。輸出結果是:1Out,1Free
【輸入檔案格式】
有很多的輸入樣本,每行代表一個樣本。每個樣本是連續的O與X的組合。(組合的長度<100)。
【輸出檔案格式】
每個樣本就有一行的輸出,必須包含兩個數字,分別代表出局與保送的人數
【輸入檔案範例】
OOXXOOOOXXXOXOXXOO
OXXOXXOXOXXOO
【輸出檔案範例】
3 Out, 1 Free
1 Out, 1 Free
試題三、DVD錄放影機—單鍵控制(One touch)
由於電子產品進步很快,所以近來DVD錄放影機的價格也越來越平價。若有某一台DVD錄放影機,有不錯的單鍵錄影功能,也就是在選好電視的電台訊號後,只要按一下「錄影」鍵即可開始錄影,但為了配合一般的節目大都是30、60、90、120分鐘的習慣,所以有了快速錄節目的設計,就是在開始錄後,只要重覆再按「錄影」按鍵一下,則自動設定錄影結束時間在30分鐘後,若是連按兩下「錄影」鍵,則是60分鐘後自動停止。同理,若是3下,則是90分,4下則是120分…假設錄影時間可以很長,則設定的錄影時間也就可以很久哦!
【輸入檔案格式】
有很多的輸入樣本,每兩行代表一個樣本。每個樣本的第一行是時間,代表按「錄影」的時間。下一行是一個數字,若0,代表不設停止時間。若1,則依上述,表示錄影30分鐘,依此類推(最大不會超過10)。假設,錄影的時限不會有問題。但要注意若錄影時間超過午夜12點的情形!
【輸出檔案格式】
每個樣本就有一行的輸出,是一個代表自動停止錄影的時間。若0,因為代表不設停止時間,所以停止的時間未知,所以請印出????????八個問號來代表。
【輸入檔案範例】
2005/2/28 22:12:51
0
2005/2/28 22:12:51
1
2005/2/28 22:12:51
4
【輸出檔案範例】
????????
2005/2/28 22:42:51
2005/3/1 0:12:51
試題四、聯考落點預測:
今年(九十四學年度) 四技二專統一入學測驗比去年晚,定在5/14.5/15 。現在以去年(九十三學年度)的統計表,作個簡單的預測:若有某位考生,已得知數學(Math)的分數,請問在全國排名上,已經可確定落後至少有多少人了呢?例如若得分是100分則是0人。96分則是1039,88分則是3870人,40分則是7277人。請參考附表,自行選擇有用的資訊,完成這個專案。
共同科目-數學(Math) 成績人數累計表 |
|
|||
分數區間 |
人數 |
百分比累計 |
人數累計 |
百分比 |
96.01-100.00 |
1039 |
0.90% |
1039 |
0.90% |
92.01-96.00 |
1271 |
1.10% |
2310 |
2.00% |
88.01-92.00 |
1560 |
1.35% |
3870 |
3.35% |
84.01-88.00 |
1629 |
1.41% |
5499 |
4.76% |
80.01-84.00 |
1778 |
1.54% |
7277 |
6.30% |
【輸入檔案格式】
先是一個整數N, 代表有N位同學,要作成績的落點預測。接下來的N行,是每行代表一個樣本,每樣本就是由一個數字組成。
【輸出檔案格式】
每個樣本就有一行的輸出,是一個代表可確定至少會落後的人數。
【輸入檔案範例】
4
100
96
88
40
【輸出檔案範例】
0
1039
3870
7277
試題五、找出最大的數:
輸入N個1~1000的整數,請由「可被9整除的奇數」中,找出最大的數。例如:9,18,12,5,27,30,63,1,5,6則請印出63. 例如:36,7,6,72則請印出”Not Foound”,代表沒有發現符合題意的數字。
【輸入檔案格式】
有很多的輸入樣本,每兩行代表一個樣本。第一行是一個整數N,代表下一行中,將會有N個整數的資料。不會有不合理的輸入。若N=0表示結束輸入。
【輸出檔案格式】
請依題意印數字,或是”Not Found”即可。每個樣本請印在一行。
【輸入檔案範例】
10
9,18,12,5,27,30,63,1,5,6
4
36,7,6,72
0
0
【輸出檔案範例】
63
Not Found
試題六、圍棋的術語「碰來扳」--優先考慮「上扳」
圍棋中有很多有用的術語,常見的就是「碰來扳」,但是,扳的方向有上扳、下扳。所謂的上或下,我們將棋盤的四邊視為下面,而棋盤的中心點稱為「天元」,也就是上面。現在已知黑棋已有一子落在某個座標上,若再知道白子碰黑子的座標,請印出上扳的座標。
關於棋盤座標的指定方式,垂直方向由下而上,編為1到19,水平方向用大寫英文字母A到T(※略過I不用),所以左下角視為原點用(A,1)代表,右下角用(T,1)來代表,右上角,則是(T,19)來代表。所以如果「黑棋1」的座標在(D,3),而如果「白棋2」在(E,3)的地方碰白子,則「白子3」要上扳座標就是在(E,4),如圖I所示;其他的例子中,都是先有黑棋1,然後白棋2去碰後,黑棋3就是要印的座標。
圖 I |
圖II |
圖III |
圖IV |
圖V |
圖VI(僅供參考) |
|
|
|
|
|
|
印出E,4 |
印出C,4 |
印出K,4 |
印出R,4 |
印E,5 |
印出Q,15 |
【輸入檔案格式】
有很多的輸入樣本,每一行代表一個樣本。每個樣本是由兩個分別代表「黑棋1」,「白棋2」的座標,兩個座標只用逗號隔開。座標不會有不合理的輸入。也不會有模糊不清的情形。樣本中:R,16,Q,16的上扳應該是Q,15,但為了簡化問題,所輸入的座標,垂直方向,將不會有大於9的情形,而且白棋2,碰黑棋1時,必然只在他的左邊或是右邊,所以只要注意水平方向的變化即可解決此題。
【輸出檔案格式】
每個樣本就有一行的輸出,是一個代表黑棋3的座標。
【輸入檔案範例】
D,3,E,3
D,3,C,3
J,3,K,3
Q,3,R,3
D,4,E,4
【輸出檔案範例】
E, 4
C, 4
K, 4
R, 4
E, 5
試題七、兩天不相連的組合問題—遞迴問題
某地區因乾旱,自來水公司擬於下週日至下週六的7天中選2天停止供水。為了避免造成民眾太大的不方便,所以要求停水的兩天不可以相連,則自來水公司有幾種選擇方式?我們在此用1代表星期1,2代表星期2,7代表星期日。則可能的方式為:13,14,15,16,17,24,25,26,27,35,36,37,46,47,67等15種情形。現在為了配合缺水情況的不同,請寫一個程式來幫水公司的主管,快速了解全部的情形。
例如:若要在5天內安排的方式只有13,14,15,24,25,35等6種情形。
【輸入檔案格式】
有很多的輸入樣本,每樣本一行,每行只有一個整數數字N(3<=N <=30),表示要安排停水的天數。
【輸出檔案格式】
每個樣本都有兩行的輸出,第一行是一系列由小到大排,而且是所有可能兩天不相連的情形。而且如果日期大於10 以上,則第10天用A代表,11天用B代表,…第19天用J代表,依此類推。第二行則是先印出”Count=”然後是所有可能的情形的總數。
【輸入檔案範例】
7
5
17
30
【輸出檔案範例】
13,14,15,16,17,24,25,26,27,35,36,37,46,47,57,
Count= 15
13,14,15,24,25,35,
Count= 6
13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,1G,1H,24,25,26,27,28,29,2A,2B,…<略>…,DF,DG,DH,EG,EH,FH,
Count= 120
13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,1G,1H,1I,1J,1K,1L,1M,…<略>…,QS,QT,QU,RT,RU,SU,
Count= 406
試題八、排程問題—貪婪法(Greedy)的問題
小瓜呆是一位學校的學生,由於學校課業較多,而他又熱心又求好心切,常常會很多件事情都要在一天內完成。但是他知道,「信用」是很重要的,而且同一時間,只適合作好一件事,或是讀好一種課程。為了讓所有的事情都可以在時限內順利完成,所以希望請你幫他設計程式,來協助這些事情的安排。他有一個習慣,那就是每天晚上都會收集明天要完成的事與進度,當然每件事所花的時間不同,要完成的截止時間也不同。為了維持信用,所以小瓜呆希望可以在晚上就知道明天的工作是否可以順利完成,若不能全部完成,則要事先主動告知相關工作的負責人。你能幫小瓜呆寫好這個程式,在前晚就知明天是否可以全部完工?若無法全部完工,也可以一大早先作好緊急處理來維持個人的信用。
【輸入檔案格式】
有多個樣本,一開始的第一行代表共有多少個樣本M, 然後每個樣本的第一行是一個整數數字N(1<=N <20),表示要安排的工作數。接下來的若干行代表有N項工作,每項工作將剛好有三個整數數字,分別代表要處理的工作代號、工作時間與該工作必需完成的截止時間。
【輸出檔案格式】
對於每個樣本要輸出是「Yes」代表可全部完工,或「No」代表相反。如果是Yes,則還必需在加上「:」後,並顯示可以作完全部工作的工作代號。必須按先後的順序,由先作到最後作。
【輸入檔案範例】
4
3
1,1,5, 2,3,4, 3,2,10
4
1,2,3, 2,3,8, 3,4,7, 4,4,13
3
1,3,5 , 2,4,7, 3,2,10
4
1,2,4, 2,4,8, 3,3,9 ,4,4,12
【輸出檔案範例】
Yes: 2 , 1 , 3
No
Yes: 1 , 2 , 3
No