顯示具有 UVa 標籤的文章。 顯示所有文章
顯示具有 UVa 標籤的文章。 顯示所有文章

2018年11月12日 星期一

Q441:Lotto

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=382


這題是利用回朔言算法來枚舉,排列出所有的可能組合,題目要求輸入一串數列,第一個數字(k)代表接下來後面會有幾個數字,最後就會從S1~Sk中取六個出來的所有組合。

在解這提前可以思考如何利用回朔法來將1 2 3 4 5這五個數字取三個出來的組合,答案如下,總共十個:
注意 1 2 3 和 1 3 2 是一樣的所以每個答案是要從小到大排列,請參考Main.java

1 2 3 
1 2 4 
1 2 5 
1 3 4 
1 3 5 
1 4 5 
2 3 4 
2 3 5 
2 4 5 
3 4 5 


若沒有大小順序限制則要建立一個check[]陣列來檢查目前此數是否在答案中且不重複(程式碼請參考Main2.java)


題目要求由小至大所以我們拿第一個程式下去修改實做(參考Q441:Lotto.java)

2017年11月28日 星期二

Q272 : TEX Quotes

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=208


這題別想太複雜把獨到的每列字串轉成字元陣列再一個一個下去找雙引號,記住每行 ` ' 的順序延續上一行,所以我把count放在最外層

範例測資:
Input:

"""

"""
Output:

``''``

''``''

2017年10月8日 星期日

Q263: Number Chains

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=199


這題就把該字串由大到小剪掉小到大的數串得出的解看是否有重複
ex: 12345
54321-12345=41976
這裡要注意輸出有01234要把頭的0去掉
為了避免TL這邊我用set來儲存不重複的數值

2017年9月28日 星期四

Q299: Train Swapping

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=235


106.09.26 CPE第二題
這題就用你喜歡的排序法實作並用一個count計算交換次數就行囉!

Q11743: Credit Check

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2843


106.09.26 CPE第一題
這題很簡單只是要驗證此信用卡數字串是否合法
他有說到奇數位乘以2再把每位數字加起來,當偶數位時直接該數加起來不做任何加成
最後算出來有個加總值當最後一位為0時就是合法

最後判斷直接用%10看看能否被整除就行拉~

2017年5月3日 星期三

948 - Fibonaccimal Base

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=889


這題簡單來說10
費事數列: 1 2 3 5 8

               0 1 0 0 1
Ans:10010
題目有說過最大值為
100000000所以建立該區間的費事數列

2017年4月6日 星期四

2017年3月27日 星期一

Q11349: Symmetric Matrix

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2324


這題主要是要搞清楚對稱矩陣(Symmetric matrix)的特性以下是名詞解釋

若矩陣A與其對換矩陣AT相等,則A稱為對稱矩陣,對稱矩陣恆為一方陣。   對換矩陣AT是依序交換A中行與列後所得矩陣,亦即:(AT)ij=Aji(對所有i與j而言)

寫了這麼多看不懂的話聽我解釋~簡單來說低一個數字跟最後個數字要一樣第二個數字要跟倒數第二個數字一樣
我們再把二維陣列概念想成簡單的一維去時做就行了
記註記住對稱矩陣內不能有負數


2017年2月21日 星期二

Q256: Quirksome Squares

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=192


這題你會發現quirksome number是一個完全平方數例如81=9*9,n=4假如有四位數0~9999依序判斷肯定會TL超時
所以我們只要判斷1、4、9、16....到(10^(n/2)-1)*(10^(n/2)-1)
簡單來說當n=4時迴圈從0開始直到100結束,求0~99的完全平方來判斷是否為quirksome number

2016年10月11日 星期二

Q12195 : Jingle Composing

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3347

這題就利用判斷式把每節內容相加最後看是不是1就好了

Q12694: Meeting Room Arrangement

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4432

2016 10/05 CPE第五題 這題的方法是先以結束時間為基準做排序(氣泡排序),再來進入迴圈一個一個去比開始時間有沒有比t大,若有t改成結束時間count++
第一個打法式二維陣列,第二種是結構化打法

2016年10月10日 星期一

Q:10415 - Eb Alto Saxophone Player

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1356

這題是2016 10/06 CPE題目 我的解法是先把14個按鍵方法先存入陣列中(arr)再建立一個整數陣列把按鈕轉換成配對arr的索引值 例如hash['c']=0(c紐就配對arr[0])
最後就是一個字一個字讀取並且依序檢查是否有按過 案過之後state[]=1反之
if (ary[j] == '1' && state[j] == 0) {
ans[j]++;
state[j] = 1;
}
if (ary[j] == '0')

state[j] = 0;

2016年10月9日 星期日

Q:11192 - Group Reverse

https://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=2133

這題是2016 10/04 CPE第一題,第一個數字是要把字串切割成幾等分,內迴圈從後面讀取印出來

Q:11344 - The Huge One

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2319

這題是2016 10/04 CPE第四題 利用大數去判斷是有整除就好了
另外除數是0時直接跳出迴圈Wonder
ful  num.equals(new BigInteger("0"))  這裡也可以用compareTo去比對
還有每組資料第二行的第一個數字是接下來有多少個數字並不是被除數

2016年10月5日 星期三

2016年10月3日 星期一

Q490: Rotating Sentences

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=431


這題純粹是字串翻轉不過需要一些小技巧才會AC,簡單來說就是把每個字串讀入二維陣列,每次存入之前檢查字數是否為該行最大值,最後翻轉印出來,這裡要確認當該列數小於最大值時要印出空白不然會拋出例外