很多英雄在自己的編碼事業中都聽說過ACM這一頂尖領域的賽事。但是我們並沒有自信到去直接參加比賽。這就到了我們需要練習的時候了。練什麼題庫那,練什麼樣的提那?不用擔心。下面一一介紹給你。
工具/原料
手和腦,當然你需要一個紙.可能會用到有道詞典,因人而異
我早就說應該出一個IT專頁。。
首先,選擇題庫。
這裡給個大家一些常用的OJ題庫。我最常用的浙大的ZOJ(全是英文)。和瓦拉杜利德(外國的)還有本校的(學校不好就不提了.畢竟畢業了,理論上每個大學都會有自己的平臺。)選擇適合自己的就好了。註冊方法大同小異。就不多介紹了。
浙江大學
北京大學
天津大學
廈門大學
福州大學
華中科技
寧波理工
汕頭大學
中國科大
西南科大
暨南大學
中山大學
福建師範
哈工業大
四川大學
哈工程大
武漢大學
同濟大學
南開大學
湖南大學
上海大學
蘭州大學
寧波大學
杭州電子科技大學
華東師範大學(ECNU):
浙江師範大學(ZJNU):
國外:
西班牙Valladolid大學
瓦拉杜利德大學(UVA):
俄羅斯Ural立大學
之後就是看題,程式設計。
它分為兩個部分,題乾和例子。有些提直接看例子就能看懂。當然有些題就是在這有陷阱:(,語言可以用C,C++,JAVA。有的還可以用別的比如pascal,o-c(都很小眾了,其實我附近用JAVA的都很少。我個人是C和C++混編)
打完後會有一個提交,上面選擇好你的語言型別。提交後,會有一個號碼,是你的測試號。用這個測試號就能找的你的程式碼在OJ的結果
常見的
Online Judge
將評判結果分為如下幾類:
Accepted
程式的輸出完全滿足題意,通過了全部的測試資料的測試。
Wrong Answer
你的程式順利地執行完畢並正常退出,但是輸出的結果卻是錯誤的。
注意:
有的題包含多組測試資料,
你的程式只要有一組資料是錯誤的,結果就是WA
Presentation Error
你的程式輸出的答案是正確的,但輸出格式不對,比如多寫了一些空
格、換行。
請注意,大部分程式的輸出,都要求最終輸出一個換行。
不過,計算機程式是很難準確判斷PE錯誤的,所以,很多PE錯誤都會被評判成WA
Compilation Error
你的程式沒有通過編譯。你可以點選文字上的連結,檢視詳細的出錯
資訊,對照此資訊,可以找出出錯原因。
一般來說,這種錯誤主要是由 Linux 環境下相關編譯器與你使用的本地編
譯器之間的差異造成的
Judging
我們正在執行你的程式進行測試,請稍候。
Rejudging
我們更新了測試資料或者評判程式,並且正在進行重測,這個過程比
較耗費資源,請稍候。
Time Limit Exceeded
你的程式執行的時間超過了該題規定的最大時間,
你的程式被Online Judge強行終止。
注意:
TE
並不能說明你的程式的執行結果是對還是錯,只能說明你的
程式用了太多的時間。
Memory Limit Exceeded
你的程式執行時使用的記憶體,超過了該題規定的最大限制,或者你的
程式申請記憶體失敗,你的程式將被Online Judge強行終止。
注意:
ML
並不能說明你的程式的執行結果是對還是錯,只能說明你的
程式用了或者申請了太多的記憶體。
Function Limit Exceeded
你的程式執行時使用我們不允許使用的呼叫,將會得到此錯誤,諸如
檔案操作等相關函式。請特別注意:system("PAUSE"); 也會導致此錯誤。
Output Limit Exceeded
你的程式輸出了太多的東西。
Online Judge規定提交的程式在執行的時候只能輸出1024K位元組的東
西,如果你輸出太多,將導致此錯誤。我們保證所有的題目的標準輸出都小於
1024K位元組。
Runtime Error
你的程式出現了“執行時錯誤”
System Error
系統發生了錯誤。由於異常因素導致系統沒有正常運作。我們盡力保
證系統的穩定執行,但如您遇此情況,請聯絡管理員。
之後就是各種刷題了,但是盲目的刷是不行的。有些題庫題的難度和題的序號不是一致的(比如浙大。。。我就吃過這樣的虧)以下給出了個階段的題。跟各位參考,忘了是在哪看的了。
Group 0:熱身
再次提醒:做對後別忘提交到訓練系統.
編號 來源 題號 標題 評註
三道都是A+B,而且有樣例程式。請自己做一遍,不要拷。
0.1 ZJU 1001 A+B Problem
0.2 PKU 1000 A+B Problem
0.3 TOJ 1000 熟悉一下Online Judge的環境
Group 1:起步
以下是一些TOJ上的題目,作為起步練習很不錯。題目是中文的,但其它形式和比賽題型一樣。要注意輸出格式。有些題目對格式交待不是很清楚,但這並不是說你可以隨意增加空格和空行。遇到這種情況,根據樣例輸出自行判斷。一般行尾沒有多餘空格。
編號 來源 題號 標題 評註
1.1 TOJ 1001 排版題.輸出排列成菱形的字母
1.2 TOJ 1003 排版題.輸出三角形的字元
1.3 TOJ 1006 敲七
1.4 TOJ 1007 Step.如何得到輸入資料的結束
1.5 TOJ 1008 揚輝三角
1.6 TOJ 1009 蛇行矩陣
可以直接在2維陣列中填數.
(直接推出每個位置數字的公式和遞推公式也可以,但效果並不比前一種方法更有效,而且難度較大)
1.7 TOJ 1015 行編輯器 簡單的字串處理
1.8 TOJ 1019 輸入三個自然數
Group 2:英文題(1)
以下是ZJU上的題目,ZJU的題都是英文的,有些題難度可能不比上面一組高。但對新隊員來說,理解題意本身可能是個難點。
編號 來源 題號 標題 評註
2.1 ZJU 1048 Financial Management
只比A+B難一點
2.2 ZJU 1045 HangOver 這一道和下面兩道都是簡單的計算
2.3 ZJU 1049 I Think I need I boat
2.4 ZJU 1813 Biker's Trip Odometer
2.5 ZJU 1057 Undercut
2.6 ZJU 1113 u Calculate e 沒有輸入,但要注意格式
2.7 ZJU 1151 Word Reversal 簡單的字串處理
2.8 ZJU 1195 Blowing Fuses 別看題有些長,但其實很簡單
2.9 ZJU 1755 Clay Bully
2.10 ZJU 1760 Doubles
Group 3:英文題(2)
下面這些題可能稍微難一些,但與上面一組難度上並沒有本質區別。只要仔細想想,應當不難做出。
編號 來源 題號 標題 評註
3.1 ZJU 1489 2^x mod n = 1
3.2 ZJU 1712 Skew Binary
3.3 ZJU 1016 Parencodings
3.4 ZJU 1350 The Drunk Jailer
3.5 ZJU 1051 A New Growth Industry 這三題可能比較繁瑣,做的時候要仔細
3.6 ZJU 1178 Booklet PrintingBook
3.7 ZJU 1078 Palindrom Numbers
Group 4:TOJ前20題中剩餘題
TOJ前20題都是基礎題,在第一組練習中已經做了一部分,剩下的這一部分難度肯定比第一組大,但與上一組難度差不多。有幾道題涉及更知識,在這依舊被剔除,留著以後做。
編號 來源 題號 標題 評註
4.1 TOJ 1005 母牛生小牛 類似Fibonacci數列,但有區別
4.2 TOJ 1012 約瑟夫問題
4.3 TOJ 1013 去尾問題
4.4 TOJ 1014 階乘結果末尾有多少零? 這兩題涉及到一些數學推導,可能難度較大
4.5 TOJ 1016 請求N!左邊第二位的數字
4.6 TOJ 1018 編制一個乘法運算的程式
4.7 TOJ 1020 字串編輯
Group 5:基礎題繼續練習
再補充一些適於基本功練習的題目,供大家繼續打好C(C++)與語言基礎。
有些題目需要一些數學推算,但都不會超出你們的知識範圍。
編號 來源 題號 標題 評註
5.1 ZJU 1763 A Simple Question of Chemistry 極簡單
5.2 ZJU 1915 Above Average極簡單
5.3 ZJU 2104 Let the Balloon Rise 極簡單
5.4 ZJU 2201 No Brainer 極簡單
5.5 ZJU 2208 To and Fro 極簡單,只要讀懂題
5.6 ZJU 1797 Least Common Multiple
想一想如何有效率地求最大公約數和最小公倍數
5.7 ZJU 1629 Counting Triangles
5.8 ZJU 2015 Number Sequence 注意數列的週期性
5.9 ZJU 1657 Goldbach's Conjecture
5.10 ZJU 1871 Steps
5.11 ZJU 1858 Soundex
5.12 ZJU 1622 Switch
5.13 ZJU 1160 Biorhythms
5.14 TOJ 1022 數制轉換 要注意如何讀入資料
5.15 TOJ 1010 數素數
注意質數判定的效率
Group 6 高精度運算練習
高精度運算也是基本功之一。
以下各題都牽涉到高精度運算,許多涉及數制轉換。但也需注意其它方面。
做題時注意模組化。做完這些題後,你會發現很多功能可以重用。
6.1 ZJU 1272 Numerically Speaking 有樣例程式
6.2 ZJU 1292 Integer Inquiry 高精度加法
6.3 ZJU 1205 Martian Addition
高精度加法,但不是十進位制
6.4 ZJU 1073 Round and Round We Go 高精度乘法
6.5 ZJU 1086 Octal Fractions 高精和數制轉換
6.6 ZJU 1154 Niven Numbers
高精和數制轉換,注意,長度題目中未明確給定。如果設固定長陣列,先設50.如果執行時溢位再往上加。
6.7 ZJU 1210 Reciprocals 高精度除法,同時注意輸出格式要求
6.8 ZJU 1962 How Many Fibs?
高精度加法,以及比較
6.9 ZJU 2017 Simple Arithmetics 涉高精加,減,乘,且格式處理較繁
6.10 ZJU 2241 Fractran 表示一個大數不僅可以用各位數,也可以用它的各因子。這題就是一例。
Group 6: 模擬類題目專項練習
編號 來源 題號 標題 評註
6.1 ZJU 1072 Microprocessor Simulation
6.2 ZJU 1208 Roll the Die!
6.3 ZJU 1710 The Snail
6.4 ZJU 1723 Board Silly
6.5 ZJU 1737 Unreliable Message
6.6 ZJU 1824 Maze Traversal
6.7 ZJU 1834 AutoFish
6.8 ZJU 1862 Mine Sweeper
6.9 ZJU 2240
Run Length Encoding
Group 7: 新一組練習
這一組題目較綜合,難度不一。(題目下載)
編號 來源 題號 標題 評註
7.1 ZJU 1068
P,MTHBGWB
7.2 ZJU 1146
LC-Display
7.3 ZJU 1243URLs
7.4 ZJU 1115
Digital Roots
7.5 ZJU 1180
Self Numbers
7.6 ZJU 1337Pi
7.7 ZJU 1312Prime Cuts
7.8 ZJU 1326
M*A*S*H
建議用連結串列做
7.9 ZJU 1494
Climbing Worm
7.10 ZJU 1577
GCD & LCM
7.11 ZJU 2122 A Flea on a Chessboard
7.12 ZJU 1628Diamond
7.13 ZJU 1630Die
7.14 ZJU 1517
Grandpa's Rubik Cub
7.15 ZJU 1161 Gone Fishing (新加)
Group 8: 字串處理
編號 來源 題號 標題 評註
8.1 ZJU 1099
HTML
8.2 ZJU 1318
Table 樣例資料
8.3 ZJU 1116 A Well-Formed Problem
8.4 ZJU 1324 Unix ls 用C語言的用scanf讀資料
8.5 ZJU 1295 Reverse Text
8.6 ZJU 1392 The Hardest Problem Ever
8.7 ZJU 1325 Palindromes
8.8 ZJU 1404 Oil Pipeline
8.9 ZJU 1884 WERTYU
Group 9:
編號 來源 題號 標題 評註
9.1 ZJU 2388 Beat the Spread
9.2 ZJU 2376 Ants 努力得猜吧
9.3 ZJU 2358 Sum of Factorials 注意0的階乘
9.4 ZJU 2345 Gold Coins
9.5 ZJU 2321 Filling Out the Team
9.6 ZJU 2397 Tian Ji -- The Horse Racing 經典貪心
9.7 ZJU 2316 Matrix Multiplication 線性代數,加組合數學
9.8 ZJU 2301 Color the Ball 離散化座標
9.9 ZJU 2330 A^B == B^A? 高數題
9.10 ZJU 2329 AB Circle
9.11 ZJU 2313 Chinese Girls' Amusement
Group 10:
這組題據金強說是簡單題。
編號 來源 題號 標題 評註
10.1 ZJU 2417 Lowest Bit
10.2 ZJU 2405 Specialized Four-Digit Numbers
10.3 ZJU 2481 Unique Ascending Array
10.4 ZJU 2478 Encoding
10.5 ZJU 2421 Recaman's Sequence
10.6 ZJU 2416 Open the Lock
10.7 ZJU 2482 IP Address
10.8 ZJU 2401 Zipper
10.9 ZJU 2480 Simplest Task in Windows
10.10 ZJU 2478 Total Amount
10.11 ZJU 2256 Mincost 貪心
10.12 ZJU 2258 Number Sequence II 構造
注意事項
ACM對數學的要求不是一星半點。
當然資料結構更重要
並不代表你離散數學可以掛