前言

大家好,我是bigsai。这篇文章给大家介绍算法竞赛,如果有帮助还请一键三连支持一下!

最近有些学妹问我咱们计算机专业的有哪些比赛可以参加呢?我眉头一皱,想了想咱们计算机专业竞赛好像确实蛮多的,在这里给捋一捋。

竞赛的目的有很多,有的是为了参加竞赛提高个人能力,有的是为了拿到荣誉为自己保研、就业、考研加分,还有的是为了奖金。

竞赛的类型也有好多种,有算法类、工程类、科研类的,不同竞赛的难度不同、社会认可度不同。根据自身条件,选择合适的比赛参与历练自己,也算是拓宽自己的认识面,以后和人聊起来也能说上两嘴。

今天主要给大家介绍一些算法类竞赛。算法类竞赛大家听过或者接触的比较多,有些竞赛奖项的荣誉能够让自己终身受誉(不夸张),不过算法类竞赛一般都是荣誉型更多,奖金很少有。

下面会介绍一些赛制和比赛,在介绍比赛之前,先把一些专业术语搞清楚:

AC:Accept,通过

AK:All-Killed,AC了所有题

爆零:一题都没通过(一般赛前自嘲这次又要爆零了)

WA:Wrong Answer,答案错误

RE:Runtime Error,运行错误(通常是数组越界、爆栈了)

CE:Compilation Error,编译错误,即使很自信也要本地编译成功后再提交。

TLE:Time Limit Exceeded,时间超限(遇到的最大难题之一,可能是死循环了,也可能是算法复杂度太高需优化,算法复杂度和给定时间心中也要有个小数)

MLE:Memory Limit Exceeded,内存超限(通常是数组开大了,数组能开多大心里大概有个数)

PE:应该是格式错误?不太确定

OLE:Output Limit Exceeded,超出输出限制

UKE:Unknown Error,出现未知错误。

三大赛制

在介绍比赛之前,要先说一下赛制,其中ACM赛制要求是最高的,错一点整个题就不得分,所以每道题要采取适合的方法,而OI和IOI则是通过测试样例数量给分,如果题目不会最优解混部分分也可以得到不错的成绩(这也是暴力杯由来根本原因)。

ACM赛制:现场判题,每道题都有多个测试点,每道题必须通过了所有的测试点才算通过。不限制提交次数,但没通过的话会有罚时,仅以最后一次提交为准。比赛过程中一般可以看到实时排名,通过题数相同的情况下按照答题时间+罚时来排名。

ACM赛制的比赛:ICPC、CCPC、codeforces比赛、牛客小白赛练习赛挑战赛、传智杯等。

OI赛制:每道题提交之后都没有任何反馈,每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数。每道题不限制提交次数,仅以最后一次提交为准。比赛过程中看不到实时排名,赛后按照总得分来排名。

OI赛制的比赛:NOI全国青少年信息学奥林匹克竞赛、CCF CSP、蓝桥杯、牛客OI赛等等。

IOI赛制:现场判题,甚至可以实时看到自己每道题得了多少分,但看不到错误的测试样例。每道题都有多个测试点,根据每道题通过的测试点的数量获得相应的分数。每道题不限制提交次数,提交错误没有任何惩罚,仅以最后一次提交为准,按照总得分来排名。IOI赛制是结合了OI赛制和ACM赛制的特点。

IOI赛制的比赛:PAT、团体程序设计天梯赛、CCF CCSP、洛谷月赛。

ICPC

ICPC名气真是太大了,提起IPCP估计大家都知道:三人一队一个电脑,英文题目,五小时内A一道题挂一个气球……

国际大学生程序设计竞赛(英文全称:International Collegiate Programming Contest(简称ICPC)),这个比赛很久以来都是ACM赞助的,以前都叫ACM/ICPC,简称ACM,现在也依然大部分人把ICPC叫做ACM。但在2018年以后ACM(美国计算机协会)就不是ICPC的主要赞助了,后来JetBrains对其赞助,目前是AWS education、华为、JetBrains三家对其主要赞助。

而早期的图标也成为一个回忆了,那时候ACM、IMB都是金主赞助商。

这个比赛含金量是非常高的,即使近些年含金量有些下滑,但它依旧算法领域含金量最高的比赛,你经常看到某个算法课程的作者:xx,20xx年ACM亚洲xx区域赛金牌。一听金牌,大家就觉得:卧槽,大佬讲课,这个课程质量肯定稳了,买买买!

不过ICPC也有省赛,亚洲区域赛,亚洲决赛( EC-Final)和世界总决赛(World Finals),一般来说区域赛含金量还是比较受认可的,当然中国只有强校的队才能进World Finals。

对于普通同学的焦点来说都是国内的几场区域赛。ICPC的门槛比较高,每个学校一般有几只队伍,有的学校可能只有一两只队伍(每个队伍一年最多打两场区域赛),具体名额分配要看各个区域赛组织文件的,所以如果想参加ICPC光想还是没用的,还要自身实力够硬能够获得学校教练认可,让你组队训练给你名额。

如果你高中有IO竞赛经验或者大一比较喜欢算法刷题,那么强烈推荐努力尝试一波,但如果你目前都大二大三但是算法基础还是很差,那并不是建议你在这上花太多时间,如果结果只是打铁那花费那么多时间在这上其实还是有点不值当的,ICPC是属于算法精英的比赛而不是普通人的比赛。虽说学习算法很能提升个人能力,考研、就业也有很大帮助,但ICPC的难度通常远大于面试力扣、剑指offer,可以但没必要。

赛制:ACM赛制

**题量:**7到13个问题(编程题)

时长:5小时

编程语言:C/C++、Java和Python

奖项设置:金、银、铜奖的颁奖比例参加队数的 10%, 20% 和 30%,其余我们亲切的称为打铁。

大赛官网:https://icpc.global/

其他:一般本科,理论上研一最大年级,三人一队,A一道题自己多一个气球。

CCPC

中国大学生程序设计竞赛(China Collegiate Programming Contest, CCPC)这个比赛是中国的,很多人把它和ICPC弄混淆,它整体来说跟ICPC很像(赛制、规则),但CCPC的历史比较短,2015年才开始第一届所以有些院校还不太认这个比赛(甚至不报销),但目前赛制也很完善也得到大家认可。

想参加的话其实门槛目前来说跟ICPC有些类似,学校可以参加的名额一部分网络赛争取,一部分固定名额,还有其他承办、出题等等其他因素也会奖励一些名额,对于学生来说,当然也是只能先进校队才能有机会参加比赛了。

对于ICPC/CCPC如果自己还很年轻,并且自己有追求想参加的话,可以打听打听校队和自己院校情况,努力刷题打比赛参加学校程序设计大赛证明自己。

其规则和ICPC相似。

大赛官网:https://ccpc.io/

其他:只允许本科、专科

蓝桥杯

蓝桥杯大家可能更熟悉一些,因为可能很多人都参加过,它是一个比较亲民化的算法竞赛(这里就不说非点子类的了),蓝桥杯大赛是工业和信息化部人才交流中心举办。

蓝桥杯是个人赛,个人赛软件类分为:C/C++大学研究生组,C/C++大学A组,C/C++大学B组,C/C++大学C组,Java大学研究生组,Java大学A组,Java大学B组,Java大学C组,Python大学组共9个组别。研究生只能报研究生组。一本院校(985、211)本科生只能报大学A组以上组别。其它本科院校本科生可报大学B组及以上组别。其它高职、高专院校可自行选择报任意组别。每位选手只能申请参加其中一个组别的竞赛。各个组别单独评奖。蓝桥杯的分组竞赛方式,让平时被“学霸”打压的普通学生,也能有获得感,有进步感,给更多学生指引了努力的方向。

在比赛的时候蓝桥杯是OI赛制,也就是提交答案之后赛后评判,根据通过的样例数量给分。这样的赛制,放宽了对于编程速度的要求,对于大部分选手来说更友好一点,可以更从容地解决问题,但也可能有些错误被疏忽不知道已经错了。

蓝桥杯报名的话有个人和院校两种,学校报名:自己注册,自己提交申请,选择学校报名,等待学校缴费(很多学校要让学生先交钱,获奖之后再报销的)。而自己报名的话就是自己完成一系列流程,但是有的学校不允许学生擅自个人报名要走学校通道的也要注意一下。

很多人对蓝桥杯的含金量看法不一,ACM大佬可能觉得这个比赛没啥含金量,但是不同人有不同的追求吧,没有ACM竞赛机会的蓝桥杯就是一个学习算法、证明自己的另一个非常好的方式。省赛的话确实含金量一般,省一才有资格进入国赛,拿了省一能证明你有两下子,在国赛如果能拿国一或者国二其实还是有含金量的。

赛制:OI赛制

题量:5道填空题+5道编程题,填空题一般也是需要编程求解答案,满分150分。

时长:4小时

编程语言:C/C++、Java和Python

奖项设置

省赛:省赛每个组别设置一、二、三等奖,比例分别为10%、20%、30%,总比例为实际参赛人数的60%,零分卷不得奖。省赛一等奖选手获得直接进入全国总决赛资格。

国赛:个人赛根据相应组别分别设立一、二、三等奖及优秀奖。其中,一等奖不高于5%,二等奖占20%,三等奖不低于25%,优秀奖不超过50%。

国赛都是省一选手参加的,并且一二三等奖获奖比例更加苛刻,所以这个含金量还是有的。

大赛官网:https://dasai.lanqiao.cn/

其他:个人赛,需要注意分组自己所能报名的组别

天梯赛

天梯赛是个团体赛,每个队不超过10人,题目的话更亲民一些,难度分3个梯级:基础级、进阶级、登顶级。以个人独立竞技、团体计分的方式进行排名。

当然天梯赛奖项设置也比较多,这里就不进行详细介绍了,可以到官网去查看奖项设置,但很多学校算法氛围不是很浓厚或者没人带队没有队伍参加,这种有意思的赛制其实还是建议参加体验一下的,自己为团队奉献力量。

赛制:IOI赛制

**题量:**基础级设 8 道题,进阶级设 4 道题,登顶级设 3 道题。

时长:3小时

编程语言:C、C++ 和 Java。

奖项设置:竞赛的 3 个组别分别设置全国高校奖、全国团队奖、个人特等奖、个人优胜奖、特别奖、成功参赛奖;同时各省设置省内高校奖和团队奖。

大赛官网:https://gplt.patest.cn/teams

其他:需本科生或者专科生

CCF CSP认证

这个中国计算机学会组织的一个认证,毕竟中国计算机学会也是个像模像样的组织,拉拢了一些高校达成一些一致,高校有的保研加分、分数可以抵考研复试机试分数、研究生CSP分数可以评奖学金加分等等手段拉取一些报名参赛。

CCF CSP认证的局域性色彩很浓厚。如果你的学校对CCF CSP有要求或者你要报考的学校对CCF CSP有政策,那你一定得报名一波哇!

但是客观来说普及度和认可度,确实还不太行。

赛制:OI赛制

题量: 5道题,都是编程题,近些年难度有所增加。

时长:4小时

编程语言:C/C++、Java和Python

奖项设置:分数排名,一般300分作为一个衡量点就不错了。满分的话很少每次只有少数几个人。

大赛官网:https://www.cspro.org/

其他:个人赛无分组,是否大学生都可参加,CSP成绩好的可以参加CCSP。

PAT

PAT: 这是浙大组织的比赛,目的我就不说了,通过一些校企合作让大家参加,不过承认的企业其实也不是很多。但是如果你考浙大那这PAT嘎嘎香啊,因为PAT的甲级分数可以直接抵浙大复试机试的分数。

不过就当影响力来说,因为是浙大组织的比较偏民间化,并且组织时间也不是很长,认可度暂时还没那么高。还有一点PAT对Java选手不太友好,因为不管什么语言时间都是一样的(不像某些比赛Java二倍时间),所以面对大量数据的时候,记得不能用Scanner,要用BufferedReader等快速输入输出(自行搜索一下Java快速输入输出)。

赛制:IOI赛制

题量:顶级(英文,3题)、甲级(英文,4题)、乙级(中文,5题)。满分都是100分。

时长:4小时

编程语言:C/C++、Java和Python等多种语言,但Java等语言很慢,千万别用Scanner。

奖项设置:分数名次,甲级90分以上的话就不错了

大赛官网:https://www.patest.cn/

其他:个人无分组,是否大学生都可参加

其他

除了上面稍微大一点的,还有一些机构公司最近也开始组织比赛(例如传智播客)这些暂时就不列举了,还有一些其他网络赛比如百度之星(每年暑假)等,还有各个平台、学校开放自己的比赛就要自己去找啦,不过在这里推荐一些刷题平台。当然OJ很多,这里简单列举一些大家熟知的。

杭电oj:http://acm.hdu.edu.cn/ 老牌oj,题量挺多

北大oj:http://poj.org/ 老老牌oj(jdk好像支持1.5……)

牛客竞赛:https://ac.nowcoder.com/acm/home 每周有很多周赛组织

Codeforces:http://codeforces.com/ 全球最大的竞赛平台,俄罗斯网站,有不同难度比赛

Atcoder:https://atcoder.jp/ 日本竞赛平台

计蒜客:https://nanti.jisuanke.com/oi/ 有些题库和比赛会在上举行

洛谷:https://www.luogu.com.cn/ 中学生打OI用的更多,也很适合算法初学者

vjudge:https://vjudge.z180.cn/ 整合一系列题目模拟组成题库(本质是个爬虫)

力扣:https://leetcode-cn.com/problemset/all/ 面向工作党强烈推荐,也有周赛

蓝桥杯练习系统:http://lx.lanqiao.cn/problemsets.page 适合刷蓝桥杯试题同志

PTA: https://pintia.cn/ PAT考题和天梯赛考题oj

最后说一下,并不是所有算法竞赛都适合你,有些算法竞赛只是特定渠道认可度很高,并且报名费确实不菲(每年举行好几次的被喷圈钱是有原因的),所以如果有条件可以试一试ICPC/CCPC,如果没条件努力冲冲蓝桥杯总是可以的吧!如果想准备某个比赛,要自己更详细了解比赛时间、学校是否有相关安排、比赛题目风格等更加具体的信息,这里就不做那么详细的介绍啦!

加油冲冲冲,今天的算法竞赛就先介绍到这里,工程类比赛比较多也比较杂,后面有空的话可以给大家梳理一波。

近期推荐阅读:
师兄刷题笔记、算法小抄、面试突击版必备资源,帮你走上人生巅峰
本以为哈夫曼树、哈夫曼编码很难,结果……

关于作者:bigsai,专注于数据结构与算法、Java方面知识分享,欢迎关注同名公众号【bigsai】,坚持输出干货,如果有学习、考研、选择等问题欢迎交流!

光刷题不参加这些算法竞赛?太亏了!相关推荐

  1. 蓝桥杯备考-刷题之路-动态规划算法(DP算法)Part1

    之前在刷力扣的时候就是浑浑噩噩的,照着评论区的答案写了一遍就万事大吉了,没有深度思考过.这次备考蓝桥杯看到DP算法的第一道题就不会,更难受的是看答案了依然完全不理解,所以决心把DP算法一次弄懂. 开始 ...

  2. python oj刷题网站_中小学计算机竞赛去哪里刷题?橙旭园OJ系统上线啦!

    原标题:中小学计算机竞赛去哪里刷题?橙旭园OJ系统上线啦! 相信许多人在学习完编程之后都会茫然,感觉自己无所不能,但是当敲代码时却大脑一片空白.在这里向大家介绍练习和提高代码水平的新姿势--橙旭园OJ ...

  3. 漫画:小白为了面试如何刷题?(呕心沥血算法指导篇)

    来自:小浩算法 三年高考,五年刷题.leetcode不算从其他各处收录的题目,单就自己的题库,总共有1600+,如果按照每天刷一道的话,总共需要5年.那我们真的需要把这些题目全部刷完吗?如果不是,刷多 ...

  4. python基础刷题_数据结构与算法LeetCode刷题(Python)

    参考资料: 一.链表 1.  链表的必备知识要点(包括基础知识.刷题中使用的STL等知识) 2.  链表逆序(LeetCode 92 ,206. Reverse Linked List 1,2) 3. ...

  5. 力扣(LeetCode)怎么刷题,以排序算法为例

    掌握 LeetCode 刷题方法再开始刷题,属于磨刀不误砍柴工.掌握正确方法是非常重要的. 如果你在刷题的时候发现怎么也写不出来,别担心,这是正常的.如果你还发现,之前明明刷过的题,过段时间再做的时候 ...

  6. 【LeetCode刷题日记】常用算法基础和理解及运用

    在我们LeetCode刷题过程中,如果我们只是了解数据结构(数组,链表,数)的使用方法,那我们在面对复杂的题目时,是很难很好的解决问题的,因此我们要了解一些常用算法来帮助我们更好的解题. 递归和迭代 ...

  7. 【力扣刷题笔记】初级算法

    初级算法 数组 1.删除排序数组中的重复项 题目 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度.元素的 相对顺序 应该保持 ...

  8. Leetcode刷题五遍还没offer - 听我分析为什么找工作光刷题没用

    一亩三分地就业求职版里,有位同学发帖说: LZ从14年秋季入学开始刷题,一门心思要找份好工作,到现在leetcode已经刷过五遍,都做好详尽的总结,看过geeksforgeeks里面一半的topic. ...

  9. 算法刷题重温(九): 排序算法来啦

    1. 写在前面 这篇文章复习排序算法, 排序算法的重要性也是不言而喻, 并且面试的时候经常会问到第K大,第K小,前K大,前K小的问题, 这往往都是排序算法的解决范畴. 在实际问题中,排序算法也是应用非 ...

最新文章

  1. html正则表达式search,正则表达式解析关键字和标签的搜索字段([])
  2. 【渝粤教育】电大中专幼儿园组织与管理 (10)作业 题库
  3. java通信项目_Java项目中的多线程通信如何利用Socket实现
  4. 前端小白进阶笔记之多级菜单分享
  5. mybais逆向工程快速生成实体和基本xml
  6. 如何建立内核级钩子控制操作系统实现程序隐身
  7. WinMerge只显示差异部分的设置方法
  8. YOLO系列专题——YOLOv1实践篇
  9. SPC 之 I-MR 控制图
  10. 在ABBYY FineReader中制作屏幕截图和识别文本
  11. Three.js地球开发—1.经纬度转球面坐标
  12. X1000 Kernel 3.10 Linux V8.2编译
  13. OSR推出在线SSL/TLS安全测试工具
  14. 微信气泡主题设置_微信气泡主题华为手机要怎么弄 华为手机微信气泡主题设置方法介绍...
  15. org.hibernate.MappingException: Unknown entity 该怎么解决
  16. git 账号密码问题
  17. pkuseg对文件分词时报错
  18. 五一 七曲山大庙烧香
  19. 05【数据的备份与恢复】
  20. 合集 | 南邮实验报告目录

热门文章

  1. 波卡链Substrate (7)Babe协议六“Secondary slot leader”
  2. (chap7 确保WEB安全的HTTPS) HTTPS通信步骤
  3. Kubernetes存储之PV-PVC
  4. 多线程通信—生产者和消费者模式
  5. recv函数返回值说明
  6. (38)编写 ShellCode
  7. 如何做好应急响应工作?常见应急响应流程
  8. 【安全漏洞】SRC另类思路分享:不受限制的资源调用
  9. 1.6 Java项目实战:计算平均成绩
  10. 牛客月赛42题解【完结】