一. 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之家
很棒,里面有不少很棒的例子,值得学习。