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年10月8日 星期日
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月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,簡單來說就是把每個字串讀入二維陣列,每次存入之前檢查字數是否為該行最大值,最後翻轉印出來,這裡要確認當該列數小於最大值時要印出空白不然會拋出例外
2016年10月1日 星期六
2016年8月23日 星期二
Q10494 - If We Were a Child Again
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1435
這題要一個一個去讀取如果用字串去切割空白會Runtime error
最後做大數的運算
這題要一個一個去讀取如果用字串去切割空白會Runtime error
最後做大數的運算
Q1225 - Digit Counting
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3666
這題就把每個數字丟到陣列一個一個存入1~9 arr[ 9 ]
這題就把每個數字丟到陣列一個一個存入1~9 arr[ 9 ]
2016年8月17日 星期三
Q10323 - Factorial! You Must be Kidding!!!
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1264
這題就是判斷階層結果大於6227020800就Overflow小於1000(不包含負數)Underflow
當負數時偶數-2 -4 -6...為Underflow 奇數-1 -3 -5...為Overflow
先利用DP建立1001個階層表當輸入值大於1000直接Overflow
補充:
比較大小
int i=b1.compareTo(b2)
i可能為-1、0、1,分别表示小於、等於、大於
i=-1 ==> b1<b2
i=0 ==> b1=b2
i=1 ==> b1>b2
這題就是判斷階層結果大於6227020800就Overflow小於1000(不包含負數)Underflow
當負數時偶數-2 -4 -6...為Underflow 奇數-1 -3 -5...為Overflow
先利用DP建立1001個階層表當輸入值大於1000直接Overflow
補充:
比較大小
int i=b1.compareTo(b2)
i可能為-1、0、1,分别表示小於、等於、大於
i=-1 ==> b1<b2
i=0 ==> b1=b2
i=1 ==> b1>b2
Q10220 - I Love Big Numbers !
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1161
這題是算出階層後每一個位數的總和最大測資有1000階層會爆所以要利用大數運算動態配置儲存1000筆資料
叫出每一個位數BigInteger先變成字串toString( )再拆成字元陣列toCharArray( )
注意當0!輸出1
這題是算出階層後每一個位數的總和最大測資有1000階層會爆所以要利用大數運算動態配置儲存1000筆資料
叫出每一個位數BigInteger先變成字串toString( )再拆成字元陣列toCharArray( )
注意當0!輸出1
Q623 - 500!
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=564
這題最大測資有1000階層會爆所以要利用大數運算動態配置儲存1000筆資料
這題最大測資有1000階層會爆所以要利用大數運算動態配置儲存1000筆資料
Q455 - Periodic Strings
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=396
這題要算出最短的重複子字串的字母個數,要注意測資可能有空白行所以要重讀取,而且每個答案之間要多空一行
Periodic String=>http://www.csie.ntnu.edu.tw/~u91029/LongestCommonSubstring.html
這題要算出最短的重複子字串的字母個數,要注意測資可能有空白行所以要重讀取,而且每個答案之間要多空一行
Periodic String=>http://www.csie.ntnu.edu.tw/~u91029/LongestCommonSubstring.html
Q10298 - Power Strings
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1239
這題就是要找出最短子字串且算出有幾個重複
程式架構是子字串1~n一個一個去跟原本字串做比對
if(str.length()%sub.length()!=0)
continue;
這個是判斷子字串是否為原本字串的倍數否就繼續執行下一個迴圈
補充若子字串用String會超時所以必須要用StringBuffer 每次append一個字母進去
這題就是要找出最短子字串且算出有幾個重複
程式架構是子字串1~n一個一個去跟原本字串做比對
if(str.length()%sub.length()!=0)
continue;
這個是判斷子字串是否為原本字串的倍數否就繼續執行下一個迴圈
補充若子字串用String會超時所以必須要用StringBuffer 每次append一個字母進去
2016年8月15日 星期一
Q11115 - Uncle Jack
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2056
這題只是D的n次方因為每個CD都不同分給大家
例如3個CD分給5個人有3*3*3*3*3種分法
由於這題測資會有10的25次方所以要用大數運算
可參考這篇:http://blog.xuite.net/wang620628/twblog/126093649-%E5%B0%876%E4%BB%B6%E7%89%A9%E5%93%81%E5%85%A8%E9%83%A8%E6%94%BE%E5%85%A54%E5%80%8B%E7%AE%B1%E5%AD%90%E5%85%A7%EF%BC%8C%E8%AB%8B%E5%95%8F%E4%B8%8B%E5%88%97%E6%9C%89%E5%B9%BE%E7%A8%AE%E6%94%BE%E6%B3%95%3F
這題只是D的n次方因為每個CD都不同分給大家
例如3個CD分給5個人有3*3*3*3*3種分法
由於這題測資會有10的25次方所以要用大數運算
可參考這篇:http://blog.xuite.net/wang620628/twblog/126093649-%E5%B0%876%E4%BB%B6%E7%89%A9%E5%93%81%E5%85%A8%E9%83%A8%E6%94%BE%E5%85%A54%E5%80%8B%E7%AE%B1%E5%AD%90%E5%85%A7%EF%BC%8C%E8%AB%8B%E5%95%8F%E4%B8%8B%E5%88%97%E6%9C%89%E5%B9%BE%E7%A8%AE%E6%94%BE%E6%B3%95%3F
2016年8月14日 星期日
Q357: Let Me Count The Ways
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=293
這是動態規化的問題題目限定範圍所以建立一個30001的陣列,一開始先把全部初始化1
然後再一個個幣值dp[]相加
這是動態規化的問題題目限定範圍所以建立一個30001的陣列,一開始先把全部初始化1
然後再一個個幣值dp[]相加
Q530: Binomial Showdown
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=471
r取k有公式=>r ! / ( r - k ) ! * k ! ,也就是斯巴卡三角形注意溢位的問題
另外要考慮到 C10取1 跟C10 取9 是一樣的,做一下轉換就能避免超時的問題
r取k有公式=>r ! / ( r - k ) ! * k ! ,也就是斯巴卡三角形注意溢位的問題
另外要考慮到 C10取1 跟C10 取9 是一樣的,做一下轉換就能避免超時的問題
2016年8月13日 星期六
Q382: Perfection
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=&problem=318&mosmsg=Submission+received+with+ID+17836051
完美數的求法利用圈1~n-1判斷是否整除(求公因數)若全部加總等於n就是PERFECT
完美數的求法利用圈1~n-1判斷是否整除(求公因數)若全部加總等於n就是PERFECT
2016年8月1日 星期一
Q612 : DNA Sorting
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=553
困難度 ★★
這題依題意算出每個字串的數字再將之排序把原來的字串從小到大印出來,最後一行不用換行
困難度 ★★
這題依題意算出每個字串的數字再將之排序把原來的字串從小到大印出來,最後一行不用換行
訂閱:
文章 (Atom)