1. 程式人生 > >【轉】Online Judge大集合

【轉】Online Judge大集合

什麼是OJ

Online Judge系統(簡稱OJ)是一個線上的判題系統。使用者可以線上提交程式原始碼,系統對原始碼進行編譯和執行,並通過預先設計的測試資料來檢驗程式原始碼的正確性。

一個使用者提交的程式在Online Judge系統下執行時將受到比較嚴格的限制,包括執行時間限制,記憶體使用限制和安全限制等。使用者程式執行的結果將被Online Judge系統捕捉並儲存,然後再轉交給一個裁判程式。該裁判程式或者比較使用者程式的輸出資料和標準輸出樣例的差別,或者檢驗使用者程式的輸出資料是否滿足一定的邏輯條件。

Online Judge系統最初使用於ACM-ICPC國際大學生程式設計競賽和OI資訊學奧林匹克競賽中的自動判題和排名。現廣泛應用於世界各地高校學生程式設計的訓練、參賽隊員的訓練和選拔、各種程式設計競賽以及資料結構和演算法的學習和作業的自動提交判斷中。

Pending &Waiting: 系統忙,你的答案在排隊等待.

Pending Rejudge: 因為資料更新或其他原因,系統將重新判你的答案.

Compiling : 正在編譯.

Running & Judging: 正在執行和判斷.

Presentation Error : 答案基本正確,但是格式不對。
Wrong Answer : 答案不完全正確.
Time Limit Exceeded : 執行超出時間限制.
Memory Limit Exceeded : 超出記憶體限制.
Output Limit Exceeded: 輸出超過限制.
Runtime Error : 執行時錯誤.

Compile Error : 編譯錯誤.

Accepted : 程式通過!

前言

  本文對國內外大家常用的幾十個線上測評網站做整理。每個測評網站都有一至兩張圖片,分別是主頁和題庫的截圖。從圖片上可以清晰地看出不同測評網站的風格,甚至是題目難度,方便大家選擇適合對口味的測評網站。作者才疏學淺,無法對每個測評網站做出一句話或是更多的客觀評價,只是在自己所熟悉的測評網站下說了幾句自己的見解。

  關於測評網站的分類,作者曾想過很多的方式,譬如按照中國外國分或是按照面向物件主要是資訊競賽生或是ACM選手分,無論怎樣都無法得到一個很好的效果。網路時代把大家連成一個整體,應演算法競賽之運而生的書籍,網站,輔導機構都是相通的。更何況,許多讀書時參加資訊學競賽的學生以後也往往會成為大學裡ACM校隊的主力。一番糾結後,作者想了一個還算折中又鄙淺的分類方法,本文中的測評網站主要分為以下幾類:

  推薦OJ:使用者數多,題目質量高,測評機穩定,容易找到高質量題解或與人交流;

  學院派OJ:各大學中學自己維護更新的測評網站,部分對外界開放;

  自由型OJ:由社會組織,公司,志願者執行,部分網站的穩定和更新得不到保證;

  比賽類OJ/社群型OJ/其他的國外OJ:定期組織比賽;

  提高型OJ:專業性較強,大部分題目思維難度較高

  學習型OJ:網上提供程式設計教育的網站附帶的試題庫和測評機。

OJ的使用方法

  if 你的學校裡有自己的oj then 就刷那上面的題即可

  else

    if 你是一個ACMER then

      按準POJ或HDU猛刷

    else

      if 你是一個OIER then  

        按準CODEVS或洛谷猛刷

      else

        從推薦OJ裡選一個適合自己難度的OJ猛刷

  總而言之,一定要有一個固定的刷題OJ,遇上特殊的自己刷的測評網站上沒有的題目時,再去別的測評網站看看。

推薦OJ

中國最受歡迎OJ之一,各式各樣各種難度的題目都有。

 

中國最受歡迎OJ之一,題目數量多,來源廣。

 

全球最大最老牌的OJ之一,題目數量堪稱之最。瀏覽需要FQ。

 

 當今最大中文OJ之一,它的天梯功能可以讓選手按照難易程度練習各種演算法。codevs也是我最早接觸到的OJ,題庫豐富,難度適中,可以無條件檢視當前出錯點的答案。據悉網站管理員WPH95以後想把CODEVS向AI等方面擴寬發展。具體怎樣不得而知,不過它作為OJ的強大行還是毋庸置疑的。

還請忽視我的刷題記錄

OJ上的後起新秀,迅速佔有了很大的OJ評測份額,它的試煉場功能和CODEVS的天梯功能相同,可以讓選手按階段做題提高。個人認為題目難度分類有些不太恰當,為何同是“普及+提高-”的題目難度差異那麼大呢?支援線上IDE程式設計。其程式碼公開計劃可以讓提交此題並達到60分且同加入程式碼公開計劃的人檢視他人的程式碼。

(賬號記錄也請忽視,忽視哈。)

題目難度多為省選級及以上,但有一部分題目需要購買許可權才能訪問。

舉辦NOIP難度的UER和省選難度的UR。賽題質量極高,命題人大多為現役集訓隊選手。

 

集訓隊作業網站。近幾年的內容還沒有公開。

 

 

學院型OJ

 

註冊完順手寫了一個揹包居然過了O(∩_∩)O

 

 

好像是許多大學創辦比賽提交作業的場所。隨著2015年NOI網站公佈了NOIP考試將從本網站的NOI題庫小組抽取題目後,詳細這個網站會迎來很多OIERS的訪問。

 

只供校內學生註冊

 

 

 

 

典雅的介面果斷好評

 

 

 

浙江工業大學OJ

 

 

 

 

大哥你家網站,卡哇伊誒!

 

 

 

自由型OJ

RQNOJ,是國內OJ(資訊學線上測評)開放平臺開發和執行的先導

主要面向資訊學競賽,09年成立,現在好像在清北學堂的手中。(話說那大犇出沒神馬的我們去北京清北的時候掛上去的,現在居然還沒撤下來)

 

比賽類OJ/社群型OJ/其他的國外OJ

Codeforces是一家為計算機程式設計愛好者提供線上評測系統的俄羅斯網站。該網站由薩拉托夫國立大學的一個團體創立並負責運營。

topcoder社群得到了數百萬編碼者的支援,因此你可以瞭解到很多挑戰性的專案,基於此你還可以為自己賺去額外的報酬。你可以每天或每週參與編碼挑戰,該社群提供的專案極具有挑戰性,對於初學者而言有一定的難度,但卻值得一試。

CodeChef由Directi建立的一個開發者社群,為開發者提供實踐、競賽和進步的平臺。該社群擁有大量的編碼競賽問題,允許訪問此前別人解答編碼挑戰賽的原始碼。該社群也設定了難易度,你可以根據自身條件選擇挑戰。

 

Bestcoder

 

克羅埃西亞coci

 

波蘭MAIN

 

波蘭SPOJ

 

日本JOI

 

 

 

挑戰型OJ

尤拉計劃PE https://projecteuler.net/ 
Project Euler可能是全球最流行的程式設計挑戰網站,專案推出初期就擁有幾十萬的使用者,足以表明其影響力有多大。Project Euler致力於鼓勵、挑戰並且發展解題技巧,併為那些對迷人的數學世界有興趣的人提供樂趣。

 

leetcode 是一個美國的線上程式設計網站,上面主要收集了各大IT公司的筆試面試題,對於應屆畢業生找工作是一個不可多得的好幫手。

這個網站的的好處在於它會告訴你測試資料以及你的輸出和正確的輸出是什麼,方便大家除錯學習。目前,只支援C++和Java兩種語言。

另一個很好的地方在於提供了2個獨立的程式碼視窗,分別編譯執行。一個自己玩的開發視窗,一個提交程式碼的視窗,可以在第一個窗口裡測試各種拿不準的功能點。

題庫包括algorithms ,database, shell三部分,以下是algorithms(演算法)的題庫部分。

 

HackerRank網站是為編碼程式設計師們提供一個以編碼謎題和現實生活中遇到的編碼難題為基礎的新興的社交平臺。HackerRank公司得到了風險投資公司Y Combinator 的資金支援。

在這個社群中,他們提供了各種編碼謎題、遊戲病毒和現實中的編碼難題及挑戰,讓黑客們在該社群中進行交流討論,接受挑戰。HackerRank就如這個名字所暗示的一樣,它同時還提供了線上排行榜和其他的競爭元素。

 

更多請移步:

挑戰最強大腦——來自全球的14個編碼社群

學習型OJ

 

 

後記

  在蒐集各大OJ的過程中發現一個很有趣的現象,面向資訊學競賽的OJ主要是漢文的,畢竟比較注意使用者體驗和網站風格設計,相比之下,面向ACM的OJ更多地採用英文題目,網站風格簡練,並且大部分無法檢視錯誤點,或許這就是常說的有需求有市場,一切為了使用者吧。

  本文是作者用短短几天的時間做出來的,有所錯誤,紕漏在所難免,希望大家多多包涵,批評,斧正,提供新的OJ資料,在下不勝感激。

  最後,祝大家在演算法競賽,在各自的領域中取得傲人的成績。