| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 算法竞赛:Online Judge介绍 -> 正文阅读 |
|
[数据结构与算法]算法竞赛:Online Judge介绍 |
专栏:算法竞赛 文章目录一、什么是Online Judge
??Online Judge 多用在编程竞赛和编程练习中,用户可以通过提交自己的代码,让系统帮助测试程序是否能根据输入输出正确的结果,从而达到检验程序的正确性、空间和时间消耗程度的目的。 ??OJ系统能够编译并执行代码,使用预设的数据对这些程序进行测试。提交的代码一般会在受限的环境下运行,包括时间限制、内存限制、安全限制等。代码的输出会被OJ系统捕获,与标准答案进行比较后返回结果。 二、Online Judge 网站
??一些比较友好的OJ网站还会搭建代码编辑器,提供自测功能,以及设立算法编程社区来方便用户对问题交流讨论等等,这种OJ网站提供的算法编程环境就更适合新手的成长。
??OJ是个人进行算法编程训练必不可少的工具,很多高校都有自己的OJ网站,如北京大学的 POJ,浙江大学的 ZOJ 等,高校创建的OJ以竞赛学习为主,所以题目会具有一定的深度,并且收录有不少经典题目,算法学习到已经程序后,可以到这些高校创建的网站刷刷题。当然,因为是学校创建的网站,并非是属于商业用途,所以网站体验不是很好,崩溃是常事,网站UI和代码编辑体验也做得不是很好。 ??下面推荐几个体验较好、比较适合入门学习的算法竞赛编程网站。当入门到一定程序后,也可以网上自行搜索其它人推荐的适合自己的编程网站。 1. 洛谷??洛谷网从 2013年开始运营,为广大算法竞赛选手、程序设计爱好者以及院校企业机构提供算法题库、社区、训练工具、在线教育为一体的解决方案。 2. LeetCode 力扣??LeetCode是著名的算法编程网站,内容偏向于求职面试。从主页的内容就可以看出富含招聘的气息。LeetCode刷题也是提升求职成功率有效方式之一。 3. 牛客??牛客是编程学习和求职面试网站,里面有着众多招聘信息和校招社招交流圈,面试题目众多。题库不仅包含算法题目,还有些编程基础题目,面试问题等。代码编辑环境也做得挺好。 4. PTA 拼题A??拼题A”(https://pintia.cn) 是浙江大学国家级程序设计系列课程教学团队与网易公司、杭州百腾教育科技有限公司合作,于2015年9月推出面向高校和社会的程序自动评测、开放式的教学辅助平台。 系统创建之初,全称为“程序设计类教学辅助教学平台”(Programming Teaching Assistant,亦简称 PTA)。 三、算法竞赛题目
??各个OJ网站首先会出一道非常简单的题目来给用户进行测试,熟悉一下界面的操作流程,比如 要求输出Hello World,要求输出两个数的和等。 1. 题目描述??题目描述负责说明题目和要求,并且说明数据的范围以及输出要求。 2. 输入输出样例??这里会说明输入输出的格式,以及给出一个或多个输入输出的样例,方面用户进行理解以及进行自我验证。这里需要注意,通过了样例的输入并不意味着程序就是正确的,在样例中给出的输入往往是最普通的值,而在实际评测时,会测试多个输入来检验程序,输入的数据十分刁钻,包含各种分类值,边界值。 3. 程序限制??计算机资源并非无限,所以需要算法所使用的内存限制在一定范围内,运行时间不能超出时间限制,毕竟如果超出了时间限制,那可能是算法复杂度较高,不是一个较好的算法。
4. 评测状态??提交代码后,系统会对代码进行编译,如果编译通过,那么会将各个测试点的数据作为输入,程序运行后读取数据并进行输出。系统会对程序的输出和正确答案进行比较,对输出结果进行判定。一个题目有多个测试点,会将程序运行数次。
5. 评测环境??编程不可忽略的一个就是语言环境。编程语言随时代发展,会不断进行修改,添加新的语法和特性、标准库新功能,弃用旧功能等。
5.1 语言标准 及 编译器(解释器)版本
??下面是洛谷所列出的评测机语言环境: 5.2 优化选项??C++还会有个 开启O2 优化 的选项,
专栏:算法竞赛 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:38:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |