光刷题不参加这些算法竞赛?太亏了!
前言
大家好,我是bigsai。這篇文章給大家介紹算法競賽,如果有幫助還請一鍵三連支持一下!
最近有些學(xué)妹問我咱們計(jì)算機(jī)專業(yè)的有哪些比賽可以參加呢?我眉頭一皺,想了想咱們計(jì)算機(jī)專業(yè)競賽好像確實(shí)蠻多的,在這里給捋一捋。
競賽的目的有很多,有的是為了參加競賽提高個(gè)人能力,有的是為了拿到榮譽(yù)為自己保研、就業(yè)、考研加分,還有的是為了獎(jiǎng)金。
競賽的類型也有好多種,有算法類、工程類、科研類的,不同競賽的難度不同、社會(huì)認(rèn)可度不同。根據(jù)自身?xiàng)l件,選擇合適的比賽參與歷練自己,也算是拓寬自己的認(rèn)識(shí)面,以后和人聊起來也能說上兩嘴。
今天主要給大家介紹一些算法類競賽。算法類競賽大家聽過或者接觸的比較多,有些競賽獎(jiǎng)項(xiàng)的榮譽(yù)能夠讓自己終身受譽(yù)(不夸張),不過算法類競賽一般都是榮譽(yù)型更多,獎(jiǎng)金很少有。
下面會(huì)介紹一些賽制和比賽,在介紹比賽之前,先把一些專業(yè)術(shù)語搞清楚:
AC:Accept,通過
AK:All-Killed,AC了所有題
爆零:一題都沒通過(一般賽前自嘲這次又要爆零了)
WA:Wrong Answer,答案錯(cuò)誤
RE:Runtime Error,運(yùn)行錯(cuò)誤(通常是數(shù)組越界、爆棧了)
CE:Compilation Error,編譯錯(cuò)誤,即使很自信也要本地編譯成功后再提交。
TLE:Time Limit Exceeded,時(shí)間超限(遇到的最大難題之一,可能是死循環(huán)了,也可能是算法復(fù)雜度太高需優(yōu)化,算法復(fù)雜度和給定時(shí)間心中也要有個(gè)小數(shù))
MLE:Memory Limit Exceeded,內(nèi)存超限(通常是數(shù)組開大了,數(shù)組能開多大心里大概有個(gè)數(shù))
PE:應(yīng)該是格式錯(cuò)誤?不太確定
OLE:Output Limit Exceeded,超出輸出限制
UKE:Unknown Error,出現(xiàn)未知錯(cuò)誤。
三大賽制
在介紹比賽之前,要先說一下賽制,其中ACM賽制要求是最高的,錯(cuò)一點(diǎn)整個(gè)題就不得分,所以每道題要采取適合的方法,而OI和IOI則是通過測試樣例數(shù)量給分,如果題目不會(huì)最優(yōu)解混部分分也可以得到不錯(cuò)的成績(這也是暴力杯由來根本原因)。
ACM賽制:現(xiàn)場判題,每道題都有多個(gè)測試點(diǎn),每道題必須通過了所有的測試點(diǎn)才算通過。不限制提交次數(shù),但沒通過的話會(huì)有罰時(shí),僅以最后一次提交為準(zhǔn)。比賽過程中一般可以看到實(shí)時(shí)排名,通過題數(shù)相同的情況下按照答題時(shí)間+罰時(shí)來排名。
ACM賽制的比賽:ICPC、CCPC、codeforces比賽、牛客小白賽練習(xí)賽挑戰(zhàn)賽、傳智杯等。
OI賽制:每道題提交之后都沒有任何反饋,每道題都有多個(gè)測試點(diǎn),根據(jù)每道題通過的測試點(diǎn)的數(shù)量獲得相應(yīng)的分?jǐn)?shù)。每道題不限制提交次數(shù),僅以最后一次提交為準(zhǔn)。比賽過程中看不到實(shí)時(shí)排名,賽后按照總得分來排名。
OI賽制的比賽:NOI全國青少年信息學(xué)奧林匹克競賽、CCF CSP、藍(lán)橋杯、牛客OI賽等等。
IOI賽制:現(xiàn)場判題,甚至可以實(shí)時(shí)看到自己每道題得了多少分,但看不到錯(cuò)誤的測試樣例。每道題都有多個(gè)測試點(diǎn),根據(jù)每道題通過的測試點(diǎn)的數(shù)量獲得相應(yīng)的分?jǐn)?shù)。每道題不限制提交次數(shù),提交錯(cuò)誤沒有任何懲罰,僅以最后一次提交為準(zhǔn),按照總得分來排名。IOI賽制是結(jié)合了OI賽制和ACM賽制的特點(diǎn)。
IOI賽制的比賽:PAT、團(tuán)體程序設(shè)計(jì)天梯賽、CCF CCSP、洛谷月賽。
ICPC
ICPC名氣真是太大了,提起IPCP估計(jì)大家都知道:三人一隊(duì)一個(gè)電腦,英文題目,五小時(shí)內(nèi)A一道題掛一個(gè)氣球……
國際大學(xué)生程序設(shè)計(jì)競賽(英文全稱:International Collegiate Programming Contest(簡稱ICPC)),這個(gè)比賽很久以來都是ACM贊助的,以前都叫ACM/ICPC,簡稱ACM,現(xiàn)在也依然大部分人把ICPC叫做ACM。但在2018年以后ACM(美國計(jì)算機(jī)協(xié)會(huì))就不是ICPC的主要贊助了,后來JetBrains對其贊助,目前是AWS education、華為、JetBrains三家對其主要贊助。
而早期的圖標(biāo)也成為一個(gè)回憶了,那時(shí)候ACM、IMB都是金主贊助商。
這個(gè)比賽含金量是非常高的,即使近些年含金量有些下滑,但它依舊算法領(lǐng)域含金量最高的比賽,你經(jīng)常看到某個(gè)算法課程的作者:xx,20xx年ACM亞洲xx區(qū)域賽金牌。一聽金牌,大家就覺得:臥槽,大佬講課,這個(gè)課程質(zhì)量肯定穩(wěn)了,買買買!
不過ICPC也有省賽,亞洲區(qū)域賽,亞洲決賽( EC-Final)和世界總決賽(World Finals),一般來說區(qū)域賽含金量還是比較受認(rèn)可的,當(dāng)然中國只有強(qiáng)校的隊(duì)才能進(jìn)World Finals。
對于普通同學(xué)的焦點(diǎn)來說都是國內(nèi)的幾場區(qū)域賽。ICPC的門檻比較高,每個(gè)學(xué)校一般有幾只隊(duì)伍,有的學(xué)校可能只有一兩只隊(duì)伍(每個(gè)隊(duì)伍一年最多打兩場區(qū)域賽),具體名額分配要看各個(gè)區(qū)域賽組織文件的,所以如果想?yún)⒓覫CPC光想還是沒用的,還要自身實(shí)力夠硬能夠獲得學(xué)校教練認(rèn)可,讓你組隊(duì)訓(xùn)練給你名額。
如果你高中有IO競賽經(jīng)驗(yàn)或者大一比較喜歡算法刷題,那么強(qiáng)烈推薦努力嘗試一波,但如果你目前都大二大三但是算法基礎(chǔ)還是很差,那并不是建議你在這上花太多時(shí)間,如果結(jié)果只是打鐵那花費(fèi)那么多時(shí)間在這上其實(shí)還是有點(diǎn)不值當(dāng)?shù)?#xff0c;ICPC是屬于算法精英的比賽而不是普通人的比賽。雖說學(xué)習(xí)算法很能提升個(gè)人能力,考研、就業(yè)也有很大幫助,但I(xiàn)CPC的難度通常遠(yuǎn)大于面試力扣、劍指offer,可以但沒必要。
賽制:ACM賽制
**題量:**7到13個(gè)問題(編程題)
時(shí)長:5小時(shí)
編程語言:C/C++、Java和Python
獎(jiǎng)項(xiàng)設(shè)置:金、銀、銅獎(jiǎng)的頒獎(jiǎng)比例參加隊(duì)數(shù)的 10%, 20% 和 30%,其余我們親切的稱為打鐵。
大賽官網(wǎng):https://icpc.global/
其他:一般本科,理論上研一最大年級(jí),三人一隊(duì),A一道題自己多一個(gè)氣球。
CCPC
中國大學(xué)生程序設(shè)計(jì)競賽(China Collegiate Programming Contest, CCPC)這個(gè)比賽是中國的,很多人把它和ICPC弄混淆,它整體來說跟ICPC很像(賽制、規(guī)則),但CCPC的歷史比較短,2015年才開始第一屆所以有些院校還不太認(rèn)這個(gè)比賽(甚至不報(bào)銷),但目前賽制也很完善也得到大家認(rèn)可。
想?yún)⒓拥脑捚鋵?shí)門檻目前來說跟ICPC有些類似,學(xué)校可以參加的名額一部分網(wǎng)絡(luò)賽爭取,一部分固定名額,還有其他承辦、出題等等其他因素也會(huì)獎(jiǎng)勵(lì)一些名額,對于學(xué)生來說,當(dāng)然也是只能先進(jìn)校隊(duì)才能有機(jī)會(huì)參加比賽了。
對于ICPC/CCPC如果自己還很年輕,并且自己有追求想?yún)⒓拥脑?#xff0c;可以打聽打聽校隊(duì)和自己院校情況,努力刷題打比賽參加學(xué)校程序設(shè)計(jì)大賽證明自己。
其規(guī)則和ICPC相似。
大賽官網(wǎng):https://ccpc.io/
其他:只允許本科、專科
藍(lán)橋杯
藍(lán)橋杯大家可能更熟悉一些,因?yàn)榭赡芎芏嗳硕紖⒓舆^,它是一個(gè)比較親民化的算法競賽(這里就不說非點(diǎn)子類的了),藍(lán)橋杯大賽是工業(yè)和信息化部人才交流中心舉辦。
藍(lán)橋杯是個(gè)人賽,個(gè)人賽軟件類分為:C/C++大學(xué)研究生組,C/C++大學(xué)A組,C/C++大學(xué)B組,C/C++大學(xué)C組,Java大學(xué)研究生組,Java大學(xué)A組,Java大學(xué)B組,Java大學(xué)C組,Python大學(xué)組共9個(gè)組別。研究生只能報(bào)研究生組。一本院校(985、211)本科生只能報(bào)大學(xué)A組以上組別。其它本科院校本科生可報(bào)大學(xué)B組及以上組別。其它高職、高專院校可自行選擇報(bào)任意組別。每位選手只能申請參加其中一個(gè)組別的競賽。各個(gè)組別單獨(dú)評(píng)獎(jiǎng)。藍(lán)橋杯的分組競賽方式,讓平時(shí)被“學(xué)霸”打壓的普通學(xué)生,也能有獲得感,有進(jìn)步感,給更多學(xué)生指引了努力的方向。
在比賽的時(shí)候藍(lán)橋杯是OI賽制,也就是提交答案之后賽后評(píng)判,根據(jù)通過的樣例數(shù)量給分。這樣的賽制,放寬了對于編程速度的要求,對于大部分選手來說更友好一點(diǎn),可以更從容地解決問題,但也可能有些錯(cuò)誤被疏忽不知道已經(jīng)錯(cuò)了。
藍(lán)橋杯報(bào)名的話有個(gè)人和院校兩種,學(xué)校報(bào)名:自己注冊,自己提交申請,選擇學(xué)校報(bào)名,等待學(xué)校繳費(fèi)(很多學(xué)校要讓學(xué)生先交錢,獲獎(jiǎng)之后再報(bào)銷的)。而自己報(bào)名的話就是自己完成一系列流程,但是有的學(xué)校不允許學(xué)生擅自個(gè)人報(bào)名要走學(xué)校通道的也要注意一下。
很多人對藍(lán)橋杯的含金量看法不一,ACM大佬可能覺得這個(gè)比賽沒啥含金量,但是不同人有不同的追求吧,沒有ACM競賽機(jī)會(huì)的藍(lán)橋杯就是一個(gè)學(xué)習(xí)算法、證明自己的另一個(gè)非常好的方式。省賽的話確實(shí)含金量一般,省一才有資格進(jìn)入國賽,拿了省一能證明你有兩下子,在國賽如果能拿國一或者國二其實(shí)還是有含金量的。
賽制:OI賽制
題量:5道填空題+5道編程題,填空題一般也是需要編程求解答案,滿分150分。
時(shí)長:4小時(shí)
編程語言:C/C++、Java和Python
獎(jiǎng)項(xiàng)設(shè)置:
省賽:省賽每個(gè)組別設(shè)置一、二、三等獎(jiǎng),比例分別為10%、20%、30%,總比例為實(shí)際參賽人數(shù)的60%,零分卷不得獎(jiǎng)。省賽一等獎(jiǎng)選手獲得直接進(jìn)入全國總決賽資格。
國賽:個(gè)人賽根據(jù)相應(yīng)組別分別設(shè)立一、二、三等獎(jiǎng)及優(yōu)秀獎(jiǎng)。其中,一等獎(jiǎng)不高于5%,二等獎(jiǎng)?wù)?0%,三等獎(jiǎng)不低于25%,優(yōu)秀獎(jiǎng)不超過50%。
國賽都是省一選手參加的,并且一二三等獎(jiǎng)獲獎(jiǎng)比例更加苛刻,所以這個(gè)含金量還是有的。
大賽官網(wǎng):https://dasai.lanqiao.cn/
其他:個(gè)人賽,需要注意分組自己所能報(bào)名的組別
天梯賽
天梯賽是個(gè)團(tuán)體賽,每個(gè)隊(duì)不超過10人,題目的話更親民一些,難度分3個(gè)梯級(jí):基礎(chǔ)級(jí)、進(jìn)階級(jí)、登頂級(jí)。以個(gè)人獨(dú)立競技、團(tuán)體計(jì)分的方式進(jìn)行排名。
當(dāng)然天梯賽獎(jiǎng)項(xiàng)設(shè)置也比較多,這里就不進(jìn)行詳細(xì)介紹了,可以到官網(wǎng)去查看獎(jiǎng)項(xiàng)設(shè)置,但很多學(xué)校算法氛圍不是很濃厚或者沒人帶隊(duì)沒有隊(duì)伍參加,這種有意思的賽制其實(shí)還是建議參加體驗(yàn)一下的,自己為團(tuán)隊(duì)奉獻(xiàn)力量。
賽制:IOI賽制
**題量:**基礎(chǔ)級(jí)設(shè) 8 道題,進(jìn)階級(jí)設(shè) 4 道題,登頂級(jí)設(shè) 3 道題。
時(shí)長:3小時(shí)
編程語言:C、C++ 和 Java。
獎(jiǎng)項(xiàng)設(shè)置:競賽的 3 個(gè)組別分別設(shè)置全國高校獎(jiǎng)、全國團(tuán)隊(duì)獎(jiǎng)、個(gè)人特等獎(jiǎng)、個(gè)人優(yōu)勝獎(jiǎng)、特別獎(jiǎng)、成功參賽獎(jiǎng);同時(shí)各省設(shè)置省內(nèi)高校獎(jiǎng)和團(tuán)隊(duì)獎(jiǎng)。
大賽官網(wǎng):https://gplt.patest.cn/teams
其他:需本科生或者專科生
CCF CSP認(rèn)證
這個(gè)中國計(jì)算機(jī)學(xué)會(huì)組織的一個(gè)認(rèn)證,畢竟中國計(jì)算機(jī)學(xué)會(huì)也是個(gè)像模像樣的組織,拉攏了一些高校達(dá)成一些一致,高校有的保研加分、分?jǐn)?shù)可以抵考研復(fù)試機(jī)試分?jǐn)?shù)、研究生CSP分?jǐn)?shù)可以評(píng)獎(jiǎng)學(xué)金加分等等手段拉取一些報(bào)名參賽。
CCF CSP認(rèn)證的局域性色彩很濃厚。如果你的學(xué)校對CCF CSP有要求或者你要報(bào)考的學(xué)校對CCF CSP有政策,那你一定得報(bào)名一波哇!
但是客觀來說普及度和認(rèn)可度,確實(shí)還不太行。
賽制:OI賽制
題量: 5道題,都是編程題,近些年難度有所增加。
時(shí)長:4小時(shí)
編程語言:C/C++、Java和Python
獎(jiǎng)項(xiàng)設(shè)置:分?jǐn)?shù)排名,一般300分作為一個(gè)衡量點(diǎn)就不錯(cuò)了。滿分的話很少每次只有少數(shù)幾個(gè)人。
大賽官網(wǎng):https://www.cspro.org/
其他:個(gè)人賽無分組,是否大學(xué)生都可參加,CSP成績好的可以參加CCSP。
PAT
PAT: 這是浙大組織的比賽,目的我就不說了,通過一些校企合作讓大家參加,不過承認(rèn)的企業(yè)其實(shí)也不是很多。但是如果你考浙大那這PAT嘎嘎香啊,因?yàn)镻AT的甲級(jí)分?jǐn)?shù)可以直接抵浙大復(fù)試機(jī)試的分?jǐn)?shù)。
不過就當(dāng)影響力來說,因?yàn)槭钦愦蠼M織的比較偏民間化,并且組織時(shí)間也不是很長,認(rèn)可度暫時(shí)還沒那么高。還有一點(diǎn)PAT對Java選手不太友好,因?yàn)椴还苁裁凑Z言時(shí)間都是一樣的(不像某些比賽Java二倍時(shí)間),所以面對大量數(shù)據(jù)的時(shí)候,記得不能用Scanner,要用BufferedReader等快速輸入輸出(自行搜索一下Java快速輸入輸出)。
賽制:IOI賽制
題量:頂級(jí)(英文,3題)、甲級(jí)(英文,4題)、乙級(jí)(中文,5題)。滿分都是100分。
時(shí)長:4小時(shí)
編程語言:C/C++、Java和Python等多種語言,但Java等語言很慢,千萬別用Scanner。
獎(jiǎng)項(xiàng)設(shè)置:分?jǐn)?shù)名次,甲級(jí)90分以上的話就不錯(cuò)了
大賽官網(wǎng):https://www.patest.cn/
其他:個(gè)人無分組,是否大學(xué)生都可參加
其他
除了上面稍微大一點(diǎn)的,還有一些機(jī)構(gòu)公司最近也開始組織比賽(例如傳智播客)這些暫時(shí)就不列舉了,還有一些其他網(wǎng)絡(luò)賽比如百度之星(每年暑假)等,還有各個(gè)平臺(tái)、學(xué)校開放自己的比賽就要自己去找啦,不過在這里推薦一些刷題平臺(tái)。當(dāng)然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/ 全球最大的競賽平臺(tái),俄羅斯網(wǎng)站,有不同難度比賽
Atcoder:https://atcoder.jp/ 日本競賽平臺(tái)
計(jì)蒜客:https://nanti.jisuanke.com/oi/ 有些題庫和比賽會(huì)在上舉行
洛谷:https://www.luogu.com.cn/ 中學(xué)生打OI用的更多,也很適合算法初學(xué)者
vjudge:https://vjudge.z180.cn/ 整合一系列題目模擬組成題庫(本質(zhì)是個(gè)爬蟲)
力扣:https://leetcode-cn.com/problemset/all/ 面向工作黨強(qiáng)烈推薦,也有周賽
藍(lán)橋杯練習(xí)系統(tǒng):http://lx.lanqiao.cn/problemsets.page 適合刷藍(lán)橋杯試題同志
PTA: https://pintia.cn/ PAT考題和天梯賽考題oj
最后說一下,并不是所有算法競賽都適合你,有些算法競賽只是特定渠道認(rèn)可度很高,并且報(bào)名費(fèi)確實(shí)不菲(每年舉行好幾次的被噴圈錢是有原因的),所以如果有條件可以試一試ICPC/CCPC,如果沒條件努力沖沖藍(lán)橋杯總是可以的吧!如果想準(zhǔn)備某個(gè)比賽,要自己更詳細(xì)了解比賽時(shí)間、學(xué)校是否有相關(guān)安排、比賽題目風(fēng)格等更加具體的信息,這里就不做那么詳細(xì)的介紹啦!
加油沖沖沖,今天的算法競賽就先介紹到這里,工程類比賽比較多也比較雜,后面有空的話可以給大家梳理一波。
近期推薦閱讀:
師兄刷題筆記、算法小抄、面試突擊版必備資源,幫你走上人生巔峰
本以為哈夫曼樹、哈夫曼編碼很難,結(jié)果……
關(guān)于作者:bigsai,專注于數(shù)據(jù)結(jié)構(gòu)與算法、Java方面知識(shí)分享,歡迎關(guān)注同名公眾號(hào)【bigsai】,堅(jiān)持輸出干貨,如果有學(xué)習(xí)、考研、選擇等問題歡迎交流!
總結(jié)
以上是生活随笔為你收集整理的光刷题不参加这些算法竞赛?太亏了!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 排个课表学会了拓扑排序!有点意思
- 下一篇: 写给小白看的硬核递归(低调点,当回小白)