一. Online Judge简介:

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),并返回程序使用的内存、运行时间等信息。

目前有不少在线测试平台,这些平台提供了很多很好的编程题,当然著名的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

该网站功能众多,其中一项是提供程序设计比赛。

⑾ ProjectEuler

该网站专门提供能用程序计算出答案的数学问题,每个问题都会有对应的解答。

⑿ ACMSolver

这个网站专门收集程序设计比赛及OJ的最新消息,可以说是面面俱到。

⒀ CODEFORCES

喜欢这个OJ的原因是因为可以看到别人的代码,非常棒。

⒁ VirtualJudge

这里面列出了一些常用的OJ,简直是一个大杂烩。

⒂ 演算法笔记

这个网站是我比较喜欢的网站,美中不足的是全是繁体字。

⒃ InterviewStreet

Interview Street是帮助知名科技企业招聘程序员的在线编程挑战平台。

⒄ 九度OJ

最近特别火,不解释。

⒅ ACM之家

很棒,里面有很多很棒的例子,值得学习。

经典算法和OJ网站(开发者必备-转)的更多相关文章

  1. OJ网站程序员必备

    一. Online Judge简介: Online Judge系统(简称OJ)是一个在线的判题系统.用户可以在线提交程序多种程序(如C.C++.Pascal)源代码,系统对源代码进行编译和执行,并通过 ...

  2. Java开发者必备的10大学习网站,送给入门学习java的你,请收下!

    作为开发者来说,必备的除了对编码的热情还要有自己的一套技巧,另外不可缺少的就是平时学习的网站.以下本人收集的 Java 开发者必备的网站,这些网站可以提供信息.以及一些很棒的讲座 , 还能解答一般问题 ...

  3. Java开发者必备十大学习网站

    作为开发者来说,必备的除了对编码的热情还要有自己的一套技巧,另外不可缺少的就是平时学习的网站.以下本人收集的Java开发者必备的网站,这些网站可以提供信息,以及一些很棒的讲座, 还能解答一般问题.面试 ...

  4. 各种OJ网站,刷题必备

    各种OJ网站 落谷 vijos JoyOI CodeVS Comet OJ 北京大学 浙江大学 杭州电子科技大学 信息学奥赛一本通 以上就是本蒟蒻所知的OJ网站 收集和打字应该值一个赞吧

  5. 现代Web应用开发者必备的六大技能

    过去,应用开发需要注重大量的专业知识,程序员只需关注单一的语言(比如COBOL.RPG.C++等),并利用该语言创建应用.而如今,时代在变迁.Web不再是单单关注独立的一面.相反,一个现代化的Web应 ...

  6. Android开发者必备的42个链接

    http://mobile.51cto.com/ahot-426035.htm Android开发者必备的42个链接 下面收集了42个帮助大家学习Android的内容链接,部分内容是面向初学者的,帮助 ...

  7. iOS开发者必备的10款工具

    当前iOS和Android两大移动操作系统“二足鼎立”,几乎覆盖了市面上大部分的智能手机.相比Android,iOS开发适配更简单,且随着各种实用工具和Swift语言的出现,iOS开发门槛地降低,开发 ...

  8. mahout中kmeans算法和Canopy算法实现原理

    本文讲一下mahout中kmeans算法和Canopy算法实现原理. 一. Kmeans是一个很经典的聚类算法,我想大家都非常熟悉.虽然算法较为简单,在实际应用中却可以有不错的效果:其算法原理也决定了 ...

  9. 使用Apriori算法和FP-growth算法进行关联分析

    系列文章:<机器学习实战>学习笔记 最近看了<机器学习实战>中的第11章(使用Apriori算法进行关联分析)和第12章(使用FP-growth算法来高效发现频繁项集).正如章 ...

随机推荐

  1. C++语言-08-命名空间

    概述 命名空间通常作为附加信息来区分不同库中相同名称的函数.类.变量.命名空间的本质是定义一个范围,该范围即为一个上下文,一个上下文中通常不允许出现相同名称的函数.类.变量. 定义 定义格式 普通的命 ...

  2. 学习Coding-iOS开源项目日志(三)

    继续前两篇,接着本第三篇<学习Coding-iOS开源项目日志(三)>讲解Coding-iOS开源项目. 前 言:作为初级程序员,想要提高自己的水平,其中一个有效的学习方法就是学习别人好的 ...

  3. 分享php工作中遇到的一些探究和技巧【1】

    一 foreach的引用 $arr = range(,); //[1,2,3] foreach($arr as &$val) { } foreach($arr as $val) { } pri ...

  4. Axure RP7.0 使用记录手册

    第一章   Axure RP7.0 下载,汉化与注册教程 一.下载软件 Axure官网:http://www.axure.com/ Axure教程官网:http://www.iaxure.com/ 网 ...

  5. Vmware快速安装linux虚拟机(SUSE)

    安装环境:Vmware 11.SUSE11 64位 vmware快速安装linux虚拟机的过程还是比较简单的,步骤如下: 1.点击文件,新建虚拟机. 2.选择典型安装. 3.在红框中选择想要安装的虚拟 ...

  6. java.lang.UnsatisfiedLinkError: C:\apache-tomcat-8.0.21\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform

    Tomcat启动报错: 25-Mar-2016 10:40:43.478 SEVERE [main] org.apache.catalina.startup.Catalina.stopServer C ...

  7. JNA 如何 加载多个 存在依赖的 DLL 库

    JNA 的出现,极大的简化了原有的 JNI 技术.下面是JNA github地址:https://github.com/java-native-access/jna 1. 简单的一个例子: /** S ...

  8. PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 的解决方法

    我也是PHP新手,通过w3cschool了解了一下php基本原理之后就开写了.但仍是菜鸟. 先不管3DES加密的方法对不对,方法都是网上的,在运行的时候报了个错,把小弟整死了.找来找去终于自己摸出了方 ...

  9. 烂泥:NFS做存储与KVM集成

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 以前有关NFS的文章,我们介绍的都是NFS的使用挂载等等.这篇文章我们介绍有关NFS作为存储使用. 既然本篇文章的主题是有关NFS的,我们还是先把NFS ...

  10. lsattr, chattr

    lsattr $lsattr #查看文件的隐藏属性 $lsattr -------------e- ./bookmarks-2016-10-11.json -------------e- ./rxvt ...