/*此篇適合給有一點水平的孩子,不適合純新手*/
ACM呢,是一個非常適合人們鍛鍊程式技巧的地方
從簡單到難的題目這裡都有
簡單的可以很簡單 程式碼不用寫十行
難的就可以很難 難到你想數個月都想不出來
寫程式的訓練,除了程式技巧
最重要的就是思考
初階的題目思考和程式技巧的比例大致相等
到後來思考會加重
思考加重的時候,穩定的程式技巧就很重要
所以兩者是相輔相成
你多寫,就會多進步
我在升高二暑假沒有朝深入演算法發展
但是做到了解決了被 一個叫做Lucky貓的ACM園地的網站http://luckycat.kshs.kh.edu.tw/
歸類成一星的中譯題目全部OVER掉
這一年來也是斷斷續續練一些沒有太複雜技巧的題目
這個暑假開始學難的東西
上手和撰寫便很快地可以接軌
一個星期多來已經寫了過去一年的分量XD
好 廢話不多說
入手的話
首先就來推薦簡單的題目
Lucky貓網站就請大家自行研究
在這裡就開列推薦的入手題清單
先開列Lucky貓一星題清單
----------------------------------------
題目編號 題目名稱
100 The 3n+1 problem
最多人拿來當示範的題目 需要一定的基礎
可以用這題來重新審視自己對寫程式概念的清楚與否
272 TeX Quotes
可訓練字串讀入讀出技巧 這裡的技巧是逐字讀入後處理 馬上讀出
458 The Decoder
需要對於ASCII碼的了解 需要看ASCII碼可以去http://www.asciitable.com/
476 Points in Figures: Rectangles
數學題目 請善用座標判斷
477 Points in Figures: Rectangles and Circles
接續上題 並且增加圓的部份 請善用距離公式
//478也是接續 但是更困難 可以想想怎麼做XD
488 Triangle Wave
有很多種作法的題目 可以直觀輸出就好 以後有機會多練一點會發現這題可以用的方法 會影響程式執行效率很多XD
有許多PE問題 要注意
494 Kindergarten Counting Game
善用ASCII判斷 注意不一定是用空白分隔
579 Clock Hands
//我當年的第一題>/////<
角度計算 屬於數學 有>180的情況要處理
591 Box of Bricks
嗯 也是數學 不難想的題目 觀察兩圖形 自己想一下XD
913 Joana and the Odd Numbers
請愛用等差級數公式Sn=2a1+(n-1)*d
10018 Reverse and Add
作法可用字串處理 亦可用數字處理
看個人啦 這題用陣列是比較好的
10035 Primary Arithmetic
數學 應該不難 自己模擬一下做加法的過程
我手寫我口~
10038 Jolly Jumpers
要處理的題目 請善用abs()~
10055 Hashmat the brave warrior
這個題目相當單純。
陷阱就在於 他的數很大
請使用long long變數型態 格式為%lld
另外如果要在DEVC作測試 請用%I64d
傳出去時要改回來!
10062 Tell me the frequencies!
一樣是ASCII 請開陣列處理
10071 Back to High School Physics
物理公式 自己導一下 最後的答案會簡單的很可愛ˇ
10082 WERTYU
可用switch() 直接暴力吧!
10107 What is the Median?
//本題使用插入排序法為最佳 如果不瞭解者請跳過 或另想解決方式
10141 Request for Proposal
字元字串處理 有些麻煩的 善用函式
10209 Is This Integration ?
數學題 有學過三角應該知道
另外pi=2.0*acos(0.0)
可以用define操作 (#define pi 2.0*acos(0.0))
10222 Decode the Mad man
同10082 暴力吧!
10300 Ecological Premium
數學 就照著文字敘述去計算 要有點耐心看完
10340 All in All
一樣是字串處理 可採用字元比對 計算長度
{
今天經過學妹的測試 發現了一些要注意的地方
第一點strlen()是跑很慢的函式
如果要使用在迴圈 請用變數儲存後再使用 以免TLE
另外break;指令跳出迴圈時
i++,j++這一類寫在for最後面的指令並不會被執行
要記得這樣XD
}
10370 Above Average
數學again 簡單的算平均 應該沒問題
10473 Simple Base Conversion
進位轉換 不懂的網路google一下
10499 The Land of Justice
1是例外,其他直接推規律吧=w=/ 不過%要用printf("%%")才輸的出去
10550 Combination Lock
我手寫我口 就照著做吧 注意一些角度上的問題就是了
10589 Area
和10209很像的圖XD
不過要輸出的面積是用估計的 請自行閱讀題目~
10673 Play with Floor and Ceil
floor()和ceil()是include在math.h的兩個函數
前者是傳回小於引數的最大整數 後者是傳回大於引數的最小整數 (20090202註記:之前寫錯了!!!)
剩下的請自行處理~
10696 f91
會寫遞迴吧?就寫成函式 秒殺~
10783 Odd Sum
暴力法,謝謝。
10789 Prime Frequency
字元處理 請用ASCII 並且判斷質數 應該不難
10812 Beat the Spread!
很簡單的數學題 要注意他的判斷和輸出
10878 Decode the tape
有點難度的字串處理XD
上面標示的空白是0 圈圈是1
二進位數字的處理~
-----
BY 雄中 Eric學長當年跟我講的
對每一行來說, 只需要寫成這樣
d=0;
for(i=1;i<10;i++){
if(i==6) //中間隔著的 '.'
continue;
d<<=1; //把 d 左移一格
if(s[i]=='o') //如果這一格是圈圈
d|=1; //把 d 的最右邊一格寫成 1
}
printf("%c",d);
-----
<<=是二進位處理
就是像i=3(00000011)
用i<<=2後
i就會變成12(=00001100)
|=則是位元OR指定運算子
d|=1就是將d和右邊的值做or運算
然後將那個值放回d
-----
10903 Rock-Paper-Scissors
國中機率問題~沒什麼好說的
10924 Prime Words
ASCII+質數問題 如果有用到i<=sqrt()記得#include<math.h>
10929 You can say 11
簡單的數學問題~不過注意它會耍詐用0011之類的
請到迴圈中判斷字串的第一個字和第二個字如果為...(自己想吧XD)
就跳出
10963 The Swallowing Ground
請不要想太多 比對距離 如果皆相同 就對 不同 就不行
別想太多 真的
11059 Maximum Product
我用了long long 就乾脆地迴圈暴力乘吧!
11172 Relational Operators
簡單的關係式 請愛用if
11185 Ternary
一樣是換進位問題 應該很容易 請自尋google方法
----------------------------------------------------
其實這些就很夠寫了XD
下一次再往外擴張 來貼一些其他地方容易上手的題目
或是稍有難度的題目
好啦 各位加油XD
- Aug 12 Sun 2007 00:48
ACM 入手第一篇
close
全站熱搜
留言列表
發表留言