2011年5月30日 星期一

攜帶容器裝水

現有容器容量分別為3公升、5公升、10公升、20公升以及40公升等五種,容器個數不限。輸入一欲帶回的公升數,計算出需攜帶的容器容量最小(x)、個數最少(y)與未裝滿容量最小(z),x+y+z最小之組合,若有相同者,均需要列出。
輸入格式:0~60之整數
輸出格式:(總個數):由大至小排列使用容器。


輸入範例:

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
 42 
 43 
 44 
 45 
 46 
 47 
 48 
 49 
 50 
 51 
 52 
 53 
 54 
 55 
 56 
 57 
 58 
 59 
 60 


輸出範例:



(1) 3
(1) 3
(1) 3
(1) 5
(1) 5
(2) 3 3
(2) 3 5
(2) 3 5
(3) 3 3 3
(2) 5 5
(3) 3 3 5
(2) 3 10
(2) 3 10
(4) 3 3 3 5
(2) 5 10
(3) 3 3 10
(3) 3 5 10
(3) 3 5 10
(4) 3 3 3 10
(2) 3 20
(2) 3 20
(2) 3 20
(2) 3 20
(2) 5 20
(2) 5 20
(3) 3 3 20
(3) 3 5 20
(3) 3 5 20
(4) 3 3 3 20
(3) 5 5 20
(4) 3 3 5 20
(3) 3 10 20
(3) 3 10 20
(5) 3 3 3 5 20
(3) 5 10 20
(4) 3 3 10 20
(4) 3 5 10 20
(4) 3 5 10 20
(5) 3 3 3 10 20
(2) 3 40
(2) 3 40
(2) 3 40
(2) 3 40
(2) 5 40
(2) 5 40
(3) 3 3 40
(3) 3 5 40
(3) 3 5 40
(4) 3 3 3 40
(3) 5 5 40
(4) 3 3 5 40
(3) 3 10 40
(3) 3 10 40
(5) 3 3 3 5 40
(3) 5 10 40
(4) 3 3 10 40
(4) 3 5 10 40
(4) 3 5 10 40
(5) 3 3 3 10 40
(3) 3 20 40

<( 麻煩幫忙修正  非確定答案 )>

天平秤重

有一天平,共有四個法碼,分別為1、3、9、27公克。請設計一程式,由"in.txt"輸入某一物品質量(1~40公克)。


輸入範例:
8公克


輸出範例:
左盤1公克,右盤9公克



0 與 1 的遊戲

內容 : 
有 1 個 bit,可以表示 0 與 1。
有 2 個 bit,可以表示 00,01,10,11。
有 n 個 bit,請產生所有 n 個 bit 所能表示的 2 進位數字。
輸入說明 :
每行一個數字 n ( 0 < n < 15 )
代表 n 個bit
輸出說明 :
 請參考範例輸出
範例輸入 :
2
 
範例輸出 :
00 
01 
10 
11
 
提示 :
字串是你的好朋友

偶數分解

  把一個偶數 n 分解成兩個質數,並輸出任意一組即可。 輸出格式請參考輸出範例。 2  n  2 ^ 31 - 1

輸入範例:

10
20
22
12
52
4
100
48
32
10000000


輸出範例:

10 = 3 + 7
20 = 3 + 17
22 = 3 + 19
12 = 5 + 7
52 = 5 + 47
4 = 2 + 2
100 = 3 + 97
48 = 5 + 43
32 = 3 + 29
10000000 = 29 + 9999971


2011年5月24日 星期二

數學遊戲

在英國有一個數學遊戲,給參賽者一些正整數和一個目標數,參賽者必須在這些正整數間插入+、-、*或 / 的符號,使得最後計算的結果等於目標數。計算的方式是由左到右,而且不必管運算的優先順序(就是不管先乘除後加減那一套)。
在這個數學運算式中,有三個限制:
1. 正整數出現的次序不可改變,也就是說要與輸入的順序相同。
2. 因為目標數也是一個正整數,所以在運算的過程中,你只有在可以整除的情況下,才可以使用除法。 
3. 在運算的過程中,如果你用某一個運算符號,會導致產生的數超出-32000 ~ +32000的範圍,那麼你不可以採用此運算符號(也就是說,在運算的過程中都不允許有超出範圍的數出現)。
輸入規範
輸入檔案的第一列是1個整數n,代表接下來有多少組測試資料。
每組測試資料一列。每列的第一個整數 p(0 < p <100),代表要做運算的數有多少個。接下來有p個正整數,每列的最後一個數(即p+1個)為目標數。所有的數都小於32000,而每個數字間以一個空格分開(請參考輸入範例)。
輸出規範
每列測試資料輸出一列運算式,使得輸入的p個正整數運算的結果等於目標數。如果找不到這樣的運算式,請輸出"無解"。如果有多組運算式可以達成任務,請輸出任何一組均可。請參考輸出範例。


輸入範例
3
3 5 7 4 3
2 1 1 2000
5 12 2 5 1 2 4
輸出範例
5+7/4=3 
無解
12-2/5*1*2=4

2011年5月20日 星期五

卡卡跑丁車

內容 :
  「卡卡跑丁車」是一款最新型的賽車遊戲,由超可愛的角色、超酷炫的跑丁車陪你一起軋車甩尾,操作簡單容易上手,輕鬆休閒不麻煩!你只要在遊戲中,使用小技巧陷害對手,讓自己在時間內跑完全程,就可以獲得勝利唷!
  在遊戲中遇到彎道時,通常需要減速以求安全過彎,而跑丁車提供了另一個選擇一甩尾!!雖然甩尾會使過彎速度下降,但累積三次甩尾後便可換取一個加速器,可以大幅縮減通過直線的時間!!可惜的是,當你囤積了兩個未使用的加速器後,再次甩尾並不會被累積計算。
  卡卡是一名跑丁車玩家,由於缺乏經驗經常拿不到第一名。他最大的問題就是不清楚應該何時甩尾與使用加速器。他請你寫一個程式來提醒他在正確的地點做正確的事。
  神奇的是卡卡平常通過任何彎道都需要 單位時間,若甩尾過彎則需平常的兩倍,也就是 10 單位時間。對於直線賽道來說,每通過 單位長度需要 2 單位的時間,若使用加速器則所需時間減半。
  當然卡卡只會在彎道甩尾、直線使用加速器,並且一個彎道只能甩尾一次、一個加速器僅作用於一條直線賽道。
輸入說明 :
測資包含多組測試資料,第一列有一個整數 T 表示接下來有幾組測試資料。每組測試資料表示一場競賽的全程路線,其第一列有一個整數 N ,代表接下來有幾條直線賽道,相鄰兩個直線賽道間恰有一個彎道。下一列有 N 個非負整數,依序給出了每條直線賽道的長度。起點為第一條直線的首端,終點為最後一條直線的末端,賽道的總長度不會超過 231 − 1 (1 ≤ ≤ 10000)
輸出說明 :
對每筆測試資料輸出卡卡到達終點所需的最短時間。

範例輸入 :
10 10 10 10 10 
10 10 10 40 10
範例輸出 :
120 
155

整數分割方式

對於一個正整數N而言,他的一個分割,就是N寫成若干個整數的和,但不計較書寫的順序。
請寫一個程式,輸入N 把N 所有分割列出來
輸入
N=7
輸出
6 1
5 2
5 1 1
4 3
4 2 1
4 1 1 1
3 3 1
3 2 2
3 2 1 1
3 1 1 1 1
2 2 2 1
2 2 1 1 1
2 1 1 1 1 1
1 1 1 1 1 1 1

2011年5月2日 星期一

中國字

所有程序語言裡沒有國字,也許大家也對判斷中國字很陌生吧! ! !


所以,今天的題目是——


輸入一篇文章,輸出它的國字。


輸入說明 :

這篇文章很長,有很多行。


輸出說明 :

對於每一行,輸出這一行的國字並換行。




範例輸入 :


今晚打老虎
VB程式  ~  !!!


範例輸出 :


今晚打老虎
程式

海星

  每個人都有自己的喜歡的東西,而Fuko最喜歡的就是海星了。你沒看錯,請不要對別人的興趣不以為然。


而且善良純真的Fuko秉持著與民同樂的想法,想把快樂散佈到這個世界上,她認為只要讓每個人都有海星,這個世界就可以變得和諧愉快。


所以她利用閒暇時間雕刻木製海星,然後一遇到自己的朋友就把海星硬塞到對方手中。


因為這個木製海星是手工製的,所以每一個海星都不會相同,而Fuko會在送出每個海星前在上面標明自己對於這個海星的滿意度x,x越大代表她對這顆海星越滿意。


為了讓自己的雕刻海星更臻於完美,她會不時的回想起她送出的海星中第k好的滿意度,然後利用自己對於海星的驚人記憶力想起那個海星的優缺點進而改進技術。


只可惜人並不是完美的,雖然Fuko對海星有強大的記憶力,可是看到亂七八糟的數字就舉手投降了,這讓她造成了非常大的困擾,沒有辦法想起滿意度就沒有辦法雕刻出更好的海星,當然也就不能讓這個世界更加和平了!


Fuko的姐姐Kouko知道了Fuko的煩惱,所以特地請你來幫她寫一個程式,可以記錄她送出的海星滿意度,並在適當的時候提醒她目前送出的第k好的海星是哪一個。




輸入說明 :


每行有一條指令依序執行,分別為


GIVE X:代表送出一個滿意度為X的海星             ( 0 < X <= 100000000 )
FIND K:代表回想送出的海星中第K好的滿意度   
END:Fuko累了要去睡覺囉!



輸出說明 :


對於下列三種指令


GIVE X:不輸出
FIND K:輸出Fuko送出的海星中第K好的滿意度
END:不輸出並結束程式






範例輸入 :


GIVE 1
GIVE 3
GIVE 5
FIND 1
FIND 2
FIND 3
GIVE 2
GIVE 4
FIND 1
FIND 2
FIND 3
FIND 4
FIND 5
END 


範例輸出 :


5
3





1




轉自:http://cat.nknush.kh.edu.tw/ShowProblem?problemid=d314

一串數字

噢噢,有個很可愛的女生叫做小樺,她正在排骨牌,每片骨牌上都恰有一個數字。她想要選出其中的幾張骨牌,在不更動順序的情況下,找到這些骨牌所能組合的最大數。

輸入說明 :
每次輸入有多組測資,每組測資佔一行。
在每組測資中,會先有一串數字,依序代表每片骨牌上的數字,最後有一個正整數n(在int範圍以內),代表她要選出其中的幾張骨牌組合成她想要的數。

輸出說明 :
請輸出小樺所組合出的那個最大的數。

範例輸入 :
987645821 6 
123456789 8 
95655645  1
範例輸出 :
987821 
23456789 
9
提示 :
987645821
123456789
95655645

今晚打老虎

這台機器有三顆功能鍵跟數字小鍵盤


功能鈕上分別寫著


1. Insert


2. Query MAX


3. Query MIN


旁邊寫著一行粗字: 極值經查詢後將會刪除 


題目看到這各位也明瞭了吧


請你寫出這台機器的程式


可以插入數字並且查詢其中的最大值與最小值 


輸入說明 :
每行輸入開頭有三種情形


1: 插入操作,其後會跟著一數字 N 代表插入的數字 (0 ≤ N ≤ 2^31-1)
2: 查詢最大值
3: 查詢最小值
同一時間內最多有 100,0000 個數字


輸出說明 :
每筆查詢輸出一行


每行只有一個數字 




範例輸入 :


1 3
1 100 

1 4 
3


範例輸出 :


100 
3


轉載自http://cat.nknush.kh.edu.tw/ShowProblem?problemid=a091

2011年5月1日 星期日

兔子問題

  




若一隻兔子的壽命是10年。如果開始有一對剛生的兔子,以後每年出生兔子數是前一年出生兔子數的兩倍,求第n年兔子的總數。


輸入:


 每行一個n(0<=n<63)




輸入範例:
0
1




輸出範例:
2
6






參考http://zerojudge.tw/ShowProblem?problemid=d213&locale=zh_TW