一. Online Judge簡介:c++
Online Judge系統(簡稱OJ)是一個在線的判題系統。用戶能夠在線提交程序多種程序(如C、C++、Pascal)源代碼,系統對源代碼進行編譯和執行,並經過預先設計的測試數據來檢驗程序源代碼的正確性。程序員
一個用戶提交的程序在Online Judge系統下執行時將受到比較嚴格的限制,包括運行時間限制,內存使用限制和安全限制等。用戶程序執行的結果將被Online Judge系統捕捉並保存,而後再轉交給一個裁判程序。該裁判程序或者比較用戶程序的輸出數據和標準輸出樣例的差異,或者檢驗用戶程序的輸出數據是否知足必定的邏輯條件。最後系統返回給用戶一個狀態:經過(Accepted,AC)、答案錯誤(Wrong Answer,WA)、超時(Time Limit Exceed,TLE)、超過輸出限制(Output Limit Exceed,OLE)、超內存(Memory Limit Exceed,MLE)、運行時錯誤(Runtime Error,RE)、格式錯誤(Presentation Error,PE)、或是沒法編譯(Compile Error,CE),並返回程序使用的內存、運行時間等信息。web
目前有很多在線測試平臺,這些平臺提供了不少很好的編程題,固然著名的acm中會有不少難題,若是你想挑戰本身的智力極限,若是你對編程頗有興趣,那麼就能夠去這些平臺註冊,而後編程提交,跟其餘編程高手一較高下。在線測試平臺每每提供多種語言的支持,對於一道題,你能夠用本身喜歡的語言來編寫,可是要想排名更前,就得考慮語言的效率問題,因此你會發現裏面的高手多用c或c++。面試
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------算法
二. 算法和OJ網站:編程
※ The ACM-ICPC International Collegiate Programming Contest(ACM/ICPC) 安全
ACM是一個給全世界高等院校學生參加的算法程序設計大賽,比賽目的在於考驗選手臨場邏輯思惟和程序編寫能力。ACM首先在世界各地舉辦初賽,而後從各個賽區選拔表現優秀的隊伍,角逐世界總決賽。學習
⑴ 西班牙Valladolid大學Online Judge(UVA) 測試
世界上最大最有名的OJ,題目巨多且雜(2500+),數據也很刁鑽,全世界的頂尖高手都在上面。聽說若是你能在UVA上AC一千道題以上,就儘管向IBM、微軟什麼的發簡歷吧,絕對不會讓你失望的。網站
⑵ 俄羅斯Ural立大學Online Judge(URAL)
也是一個老牌的OJ,題目很少,但題題經典。
⑶ 俄羅斯薩拉托夫國立大學Saratov State University (SGU)
SGU是俄羅斯薩拉托夫國立大學用於培養ACM選手的訓練網站。這個網站的建成時期較晚,但隨着比賽的舉行以及新題目的加入,這個題庫的題目也日漸豐富。這個題庫的一大特色就是OJ功能強大,它不只使你避開了多數據處理的繁瑣操做,還能告訴你程序錯在了第幾個數據。這一點雖然與ACM的Judge有些出入,可是卻方便了調試程序。與UVA相比,這裏的題目在時間空間上要求都比較嚴格,並且更多的考察選手對算法的掌握狀況,因此特別推薦衝擊NOI的選手也來作一作。
⑷ 全美計算機奧林匹克競賽Online Judge(USACO)
USACO的特色是作完一關才能繼續往下作,與前面的OJ不一樣的是測試數據能夠看到,而且作對後能夠看標準解答,因此若是你們剛開始的時候在上面那些OJ上總WA卻找不到緣由的話,能夠試着來這裏作作,看看測試數據通常是從什麼地方陰你的。
⑸ 浙江大學Online Judge(ZOJ)
國內最先也是最有名氣的OJ,有不少高手在上面作題。特色是數據比較刁鑽,常常會有你想不到的邊界數據,很能考驗思惟的全面性。
⑹ 北京大學Online Judge(POJ)
創建較晚但題目加得很快,如今題數和ZOJ不相上下,特色是舉行在線比賽比較多,數據比ZOJ上的要弱,有時候一樣的題一樣的代碼,在ZOJ上WA,在POJ上就能AC。
⑺ 同濟大學Online Judge(TOJ)
其上OJ題數上不能與ZOJ和POJ相比,推薦這個OJ的緣由是由於它是中文的,這對不少對英文不太感冒的兄弟是個好消息吧。它也所以吸引了衆多高中的ddmm,畢竟他們的英文還差一些,呵呵。。上面的題目也更偏向於高中的信息學競賽一些。
⑻ 杭電科大Online Judge(HDU)
裏面不乏好題,培養出的不少牛人,畢業後就進了阿里。
⑼ LeetCode
裏面有很編程多面試的題目,能夠在線編譯運行。難度比較高。若是本身能都作出來,對面大公司頗有幫助。
⑽ TopCoder
該網站功能衆多,其中一項是提供程序設計比賽。
該網站專門提供能用程序計算出答案的數學問題,每一個問題都會有對應的解答。
這個網站專門收集程序設計比賽及OJ的最新消息,能夠說是面面俱到。
喜歡這個OJ的緣由是由於能夠看到別人的代碼,很是棒。
這裏面列出了一些經常使用的OJ,簡直是一個大雜燴。
⒂ 演算法筆記
這個網站是我比較喜歡的網站,美中不足的是全是繁體字。
Interview Street是幫助知名科技企業招聘程序員的在線編程挑戰平臺。
⒄ 九度OJ
最近特別火,不解釋。
⒅ ACM之家
很棒,裏面有不少很棒的例子,值得學習。