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)
2018年11月12日 星期一
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:
``''``
''``''
這題別想太複雜把獨到的每列字串轉成字元陣列再一個一個下去找雙引號,記住每行 ` ' 的順序延續上一行,所以我把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來儲存不重複的數值
這題就把該字串由大到小剪掉小到大的數串得出的解看是否有重複
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計算交換次數就行囉!
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看看能否被整除就行拉~
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所以建立該區間的費事數列
這題簡單來說10
費事數列: 1 2 3 5 8
0 1 0 0 1
Ans:10010
題目有說過最大值為100000000所以建立該區間的費事數列
2017年4月6日 星期四
Q10093: An Easy Problem!
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1034
這題主要是找該數的每位數最大的基底,最後再查看該數能夠被最小基底的數整除的基底數
這題主要是找該數的每位數最大的基底,最後再查看該數能夠被最小基底的數整除的基底數
2017年3月27日 星期一
Q11349: Symmetric Matrix
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2324
這題主要是要搞清楚對稱矩陣(Symmetric matrix)的特性以下是名詞解釋
這題主要是要搞清楚對稱矩陣(Symmetric matrix)的特性以下是名詞解釋
若矩陣A與其對換矩陣AT相等,則A稱為對稱矩陣,對稱矩陣恆為一方陣。 對換矩陣AT是依序交換A中行與列後所得矩陣,亦即:(AT)ij=Aji(對所有i與j而言)
寫了這麼多看不懂的話聽我解釋~簡單來說低一個數字跟最後個數字要一樣第二個數字要跟倒數第二個數字一樣
我們再把二維陣列概念想成簡單的一維去時做就行了
記註記住對稱矩陣內不能有負數
我們再把二維陣列概念想成簡單的一維去時做就行了
記註記住對稱矩陣內不能有負數
2017年3月15日 星期三
Q11461:Square Numbers
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2456
這題用ArrayList先建表,計算輸入a、b序列中有幾個是符合平方的數
這題用ArrayList先建表,計算輸入a、b序列中有幾個是符合平方的數
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
這題你會發現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年11月27日 星期日
Q10193: All You Need Is Love
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1134
這題利用GCD去判斷當小於1 Pair #%d: Love is not all you need! 反之
GCD=>最大公因數
這題利用GCD去判斷當小於1 Pair #%d: Love is not all you need! 反之
GCD=>最大公因數
2016年10月11日 星期二
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/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/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第一題,第一個數字是要把字串切割成幾等分,內迴圈從後面讀取印出來
這題是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時直接跳出迴圈Wonderful num.equals(new BigInteger("0")) 這裡也可以用compareTo去比對
還有每組資料第二行的第一個數字是接下來有多少個數字並不是被除數
這題是2016 10/04 CPE第四題 利用大數去判斷是有整除就好了
另外除數是0時直接跳出迴圈Wonderful num.equals(new BigInteger("0")) 這裡也可以用compareTo去比對
還有每組資料第二行的第一個數字是接下來有多少個數字並不是被除數
2016年10月6日 星期四
Q11689: Soda Surpler
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2736
這題就是簡單的利用/和%來計算換取的飲料,當不能再換時num<c就跳出迴圈
這題就是簡單的利用/和%來計算換取的飲料,當不能再換時num<c就跳出迴圈
2016年10月5日 星期三
Q10302: Summation of Polynomials
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1243
這題其實用long就可以了這題有兩種解法
第一種是動態規劃先把5000內所有立方算出後來再相加
第二種解法是利用公式解 (x*x*(x+1)*(x+1))/4
這題其實用long就可以了這題有兩種解法
第一種是動態規劃先把5000內所有立方算出後來再相加
第二種解法是利用公式解 (x*x*(x+1)*(x+1))/4
Q10365: Blocks
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1306
這題就是把體積拆成長*寬*高(i*j*k)
體積計算面積的公式(i*j+j*k+k*i)*2
這題就是把體積拆成長*寬*高(i*j*k)
體積計算面積的公式(i*j+j*k+k*i)*2
2016年10月3日 星期一
Q490: Rotating Sentences
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=431
這題純粹是字串翻轉不過需要一些小技巧才會AC,簡單來說就是把每個字串讀入二維陣列,每次存入之前檢查字數是否為該行最大值,最後翻轉印出來,這裡要確認當該列數小於最大值時要印出空白不然會拋出例外
這題純粹是字串翻轉不過需要一些小技巧才會AC,簡單來說就是把每個字串讀入二維陣列,每次存入之前檢查字數是否為該行最大值,最後翻轉印出來,這裡要確認當該列數小於最大值時要印出空白不然會拋出例外
訂閱:
文章 (Atom)
