ACM国际大学生程序设计竞赛及练习题库
ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽
ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽(英文全稱(chēng):ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)是由美國(guó)計(jì)算機(jī)協(xié)會(huì)(ACM)主辦的,一項(xiàng)旨在展示大學(xué)生創(chuàng)新能力、團(tuán)隊(duì)精神和在壓力下編寫(xiě)程序、分析和解決問(wèn)題能力的年度競(jìng)賽。經(jīng)過(guò)近30多年的發(fā)展,ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽已經(jīng)發(fā)展成為最具影響力的大學(xué)生計(jì)算機(jī)競(jìng)賽。賽事目前由IBM公司贊助。
?
背景和歷史
競(jìng)賽的歷史可以上溯到1970年,當(dāng)時(shí)在美國(guó)德克薩斯A&M大學(xué)舉辦了首屆比賽。當(dāng)時(shí)的主辦方是the Alpha Chapter of the UPE Computer Science Honor Society。作為一種全新的發(fā)現(xiàn)和培養(yǎng)計(jì)算機(jī)科學(xué)頂尖學(xué)生的方式,競(jìng)賽很快得到美國(guó)和加拿大各大學(xué)的積極響應(yīng)。1977年,在ACM計(jì)算機(jī)科學(xué)會(huì)議期間舉辦了首次總決賽,并演變成為目前的一年一屆的多國(guó)參與的國(guó)際性比賽,迄今已經(jīng)舉辦了35屆。
最初幾屆比賽的參賽隊(duì)伍主要來(lái)自美國(guó)和加拿大,后來(lái)逐漸發(fā)展成為一項(xiàng)世界范圍內(nèi)的競(jìng)賽。特別是自1997年IBM開(kāi)始贊助賽事之后,賽事規(guī)模增長(zhǎng)迅速。1997年,總共有來(lái)自560所大學(xué)的840支隊(duì)伍參加比賽。而到了2004年,這一數(shù)字迅速增加到840所大學(xué)的4109支隊(duì)伍并以每年10-20%的速度在增長(zhǎng)。
1980年代,ACM將競(jìng)賽的總部設(shè)在位于美國(guó)德克薩斯州的貝勒大學(xué)。
在賽事的早期,冠軍多為美國(guó)和加拿大的大學(xué)獲得。而進(jìn)入1990年代后期以來(lái), 俄羅斯和其它一些東歐國(guó)家的大學(xué)連奪數(shù)次冠軍。來(lái)自中國(guó)大陸的上海交通大學(xué)代表隊(duì)則在2002年美國(guó)夏威夷的第26屆、2005年上海的第29屆和2010在哈爾濱的第34屆的全球總決賽上三奪冠軍,浙江大學(xué)參賽隊(duì)在美國(guó)當(dāng)?shù)貢r(shí)間2011年5月30下午2時(shí)結(jié)束的第35屆ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽全球總決賽榮獲全球總冠軍,成為除上海交通大學(xué)之外唯一獲得ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽全球總決賽冠軍的亞洲高校。這也是目前為止亞洲大學(xué)在該競(jìng)賽上取得的最好成績(jī)。賽事的競(jìng)爭(zhēng)格局已經(jīng)由最初的北美大學(xué)一枝獨(dú)秀演變成目前的亞歐對(duì)抗的局面。
簡(jiǎn)要規(guī)則
ACM-ICPC以團(tuán)隊(duì)的形式代表各學(xué)校參賽,每隊(duì)由3名隊(duì)員組成。每位隊(duì)員必須是在校學(xué)生,有一定的年齡限制,并且最多可以參加2次全球總決賽和5次區(qū)域選拔賽。
比賽期間,每隊(duì)使用1臺(tái)電腦需要在5個(gè)小時(shí)內(nèi)使用C、C++、Pascal或Java中的一種編寫(xiě)程序解決7到10個(gè)問(wèn)題。程序完成之后提交裁判運(yùn)行,運(yùn)行的結(jié)果會(huì)判定為正確或錯(cuò)誤兩種并及時(shí)通知參賽隊(duì)。而且有趣的是每隊(duì)在正確完成一題后,組織者將在其位置上升起一只代表該題顏色的氣球。
最后的獲勝者為正確解答題目最多且總用時(shí)最少的隊(duì)伍。每道試題用時(shí)將從競(jìng)賽開(kāi)始到試題解答被判定為正確為止,其間每一次提交運(yùn)行結(jié)果被判錯(cuò)誤的話將被加罰20分鐘時(shí)間,未正確解答的試題不記時(shí)。例如:A、B兩隊(duì)都正確完成兩道題目,其中A隊(duì)提交這兩題的時(shí)間分別是比賽開(kāi)始后1:00和2:45,B隊(duì)為1:20和2:00,但B隊(duì)有一題提交了2次。這樣A隊(duì)的總用時(shí)為1:00+2:45=3:45而B(niǎo)隊(duì)為1:20+2:00+0:20=3:40,所以B隊(duì)以總用時(shí)少而獲勝。
與其它計(jì)算機(jī)程序競(jìng)賽(例如國(guó)際信息學(xué)奧林匹克,IOI)相比,ACM-ICPC的特點(diǎn)在于其題量大,每隊(duì)需要5小時(shí)內(nèi)完成8道題目,甚至更多。另外一支隊(duì)伍3名隊(duì)員卻只有1臺(tái)電腦,使得時(shí)間顯得更為緊張。因此除了扎實(shí)的專(zhuān)業(yè)水平,良好的團(tuán)隊(duì)協(xié)作和心理素質(zhì)同樣是獲勝的關(guān)鍵。
競(jìng)賽流程
大賽現(xiàn)場(chǎng)
1.參賽隊(duì)伍最多由三名參賽隊(duì)員組成。
2.競(jìng)賽中至少命題6題,至多命題10題,試題描述為英文,比賽時(shí)間為5個(gè)小時(shí)。
3.競(jìng)賽可以使用的語(yǔ)言:C++、C、Java和Pascal。但final賽只有C/C++;
4.重點(diǎn)考察選手的算法和程序設(shè)計(jì)能力,不考察任何Windows編程知識(shí);
5.選手可攜帶任何非電子類(lèi)資料,包括書(shū)籍和打印出來(lái)的程序等;
6.評(píng)委負(fù)責(zé)將結(jié)果(正確或出錯(cuò)的類(lèi)型)通過(guò)網(wǎng)絡(luò)盡快返回給選手,除此之外不提供任何額外幫助;
返回結(jié)果:
1.Accepted. ---通過(guò)!(AC)
2.Wrong Anwser. ---答案錯(cuò)。(WA)
3.RunTime Error. ---程序運(yùn)行出錯(cuò),意外終止等。(RTE)
4.Time Limit Exceeded. ---超時(shí)。程序沒(méi)在規(guī)定時(shí)間內(nèi)出答案。(TLE)
5.Presentation Error. ---格式錯(cuò)。程序沒(méi)按規(guī)定的格式輸出答案。(PE)
6.Memory Limit Exceeded. ---超內(nèi)存。程序沒(méi)在規(guī)定空間內(nèi)出答案。(MLE)
7.Compile Error. ---編譯錯(cuò)。程序編譯不過(guò)。(CE)
區(qū)域和全球決賽
賽事由各大洲區(qū)域預(yù)賽和全球總決賽兩個(gè)階段組成。各預(yù)賽區(qū)第一名自動(dòng)獲得參加全球總決賽的資格。決賽安排在每年的3-4月舉行,而區(qū)域預(yù)賽一般安排在上一年的9-12月舉行。一個(gè)大學(xué)可以有多支隊(duì)伍參加區(qū)域預(yù)賽,但只能有一支隊(duì)伍參加全球總決賽。
全球總決賽第一名將獲得獎(jiǎng)杯一座。另外,成績(jī)靠前的參賽隊(duì)伍也將獲得金、銀和銅牌。而解題數(shù)在中等以下的隊(duì)伍會(huì)得到確認(rèn)但不會(huì)進(jìn)行排名。
形式與評(píng)分辦法
競(jìng)賽進(jìn)行5個(gè)小時(shí),一般有6—8道試題,由同隊(duì)的三名選手使用同一臺(tái)計(jì)算機(jī)協(xié)作完成。當(dāng)解決了一道試題之后,將其提交給評(píng)委,由評(píng)委判斷其是否正確。若提交的程序運(yùn)行不正確,則該程序?qū)⒈煌嘶亟o參賽隊(duì),參賽隊(duì)可以進(jìn)行修改后再一次提交該問(wèn)題。程序運(yùn)行不正確是指出現(xiàn)以下4種情況之一:
(1)運(yùn)行出錯(cuò)(run-timeerror);
(2)運(yùn)行超時(shí)〔time-limitexceeded);
(3)運(yùn)行結(jié)果錯(cuò)誤(wronganswer);
(4)運(yùn)行結(jié)果輸出格式錯(cuò)誤(presentationerror)。
(5)運(yùn)行內(nèi)存溢出( Memory Limit Exceeded);
競(jìng)賽結(jié)束后,參賽各隊(duì)以解出問(wèn)題的多少進(jìn)行排名,若解出問(wèn)題數(shù)相同,按照總用時(shí)的長(zhǎng)短排名。總用時(shí)為每個(gè)解決了的問(wèn)題所用時(shí)間之和。一個(gè)解決了的問(wèn)題所用的時(shí)間是競(jìng)賽開(kāi)始到提交被接受的時(shí)間加上該問(wèn)題的罰時(shí)(每次提交通不過(guò),罰時(shí)20分鐘)。沒(méi)有解決的問(wèn)題不記時(shí)。美國(guó)英語(yǔ)為競(jìng)賽的工作語(yǔ)言。競(jìng)賽的所有書(shū)面材料(包括試題)將用美國(guó)英語(yǔ)寫(xiě)出,區(qū)域競(jìng)賽中可以使用其它語(yǔ)言。總決賽可以使用的程序設(shè)計(jì)語(yǔ)言包括pascal,c,c++及java,也可以使用其它語(yǔ)言。具體的操作系統(tǒng)及語(yǔ)言版本各年有所不同。
獎(jiǎng)勵(lì)情況
總決賽前十名的隊(duì)伍將得到高額獎(jiǎng)學(xué)金:第一名獎(jiǎng)金為12000美元,第二名獎(jiǎng)金為6000美元,第三名獎(jiǎng)金為3000美元,第四名至第十名將各得到l500美元。除此之外還將承認(rèn)北美冠軍、歐洲冠軍、南太平洋冠軍及亞洲冠軍。
腦力之爭(zhēng)
頭腦風(fēng)暴
競(jìng)賽規(guī)定每支參賽隊(duì)伍由三名在校大學(xué)生組成,他們需要在規(guī)定的五個(gè)小時(shí)內(nèi)解決八個(gè)或更多的復(fù)雜實(shí)際編程問(wèn)題。每隊(duì)使用一臺(tái)電腦,參賽者爭(zhēng)分奪秒,與其他參賽隊(duì)伍拼比邏輯、策略和心理素質(zhì)。
團(tuán)隊(duì)成員將在多名專(zhuān)家裁判的嚴(yán)格督察下通力合作,對(duì)問(wèn)題進(jìn)行難度分級(jí)、推斷出要求、設(shè)計(jì)測(cè)試平臺(tái)并構(gòu)建軟件系統(tǒng),最終成功地解決問(wèn)題。對(duì)于一名精通計(jì)算機(jī)科學(xué)的學(xué)生而言,有些問(wèn)題只是精確度的問(wèn)題;而有些則需要學(xué)生了解并掌握高級(jí)算法;還有一些問(wèn)題是普通學(xué)生無(wú)法解決的,不過(guò)對(duì)于那些最優(yōu)秀的學(xué)生而言,這一切都不在話下。
競(jìng)賽的評(píng)判過(guò)程十分嚴(yán)格。我們分發(fā)給學(xué)生的是問(wèn)題陳述,而不是要求須知。他們會(huì)收到一個(gè)測(cè)試數(shù)據(jù)實(shí)例,但無(wú)法獲得裁判的測(cè)試數(shù)據(jù)和接受標(biāo)準(zhǔn)方面的信息。若每次提交的解決方案出現(xiàn)錯(cuò)誤,就會(huì)受到加時(shí)懲罰。畢竟,在處理頂級(jí)計(jì)算問(wèn)題時(shí),誰(shuí)也不想浪費(fèi)客戶(hù)的時(shí)間。在最短的累計(jì)時(shí)間內(nèi),提交次數(shù)最少、解決問(wèn)題最多的隊(duì)伍就是最后的勝利者。
IBM的承諾
在IBM所開(kāi)展的眾多學(xué)術(shù)活動(dòng)中,贊助ACM-ICPC賽事占有十分重要的位置。此舉旨在促進(jìn)開(kāi)放源代碼編程技巧的發(fā)展,培養(yǎng)更具競(jìng)爭(zhēng)力的IT工作人員,從而推動(dòng)全球創(chuàng)新和經(jīng)濟(jì)增長(zhǎng)。
關(guān)于ACM
ACM(美國(guó)計(jì)算機(jī)協(xié)會(huì))是一家科教性質(zhì)的協(xié)會(huì),旨在聯(lián)合全球計(jì)算機(jī)領(lǐng)域的教學(xué)人員、研究人員和從業(yè)人員,開(kāi)展行業(yè)交流活動(dòng)、共享資源和解決業(yè)界難題。憑借絕對(duì)的領(lǐng)導(dǎo)地位,ACM始終致力于推行最高行業(yè)標(biāo)準(zhǔn),表彰杰出技術(shù)人才,加強(qiáng)計(jì)算機(jī)行業(yè)的整體隊(duì)伍建設(shè)。ACM通過(guò)為成員提供終生學(xué)習(xí)、職業(yè)發(fā)展及與專(zhuān)業(yè)人士聯(lián)誼的機(jī)會(huì),支持其在各自的專(zhuān)業(yè)領(lǐng)域取得長(zhǎng)足進(jìn)步。
ICPC2008簡(jiǎn)介
IBM的承諾
第32屆ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽(ICPC)又名“腦力之爭(zhēng)”(BattleoftheBrains),其舉辦宗旨是為大學(xué)生提供一個(gè)集中的展示舞臺(tái),表現(xiàn)他們?cè)谖鍌€(gè)小時(shí)的指定時(shí)間內(nèi)解決實(shí)際電腦編程問(wèn)題的超強(qiáng)能力。
2007年9月-12月全球已經(jīng)有來(lái)自83個(gè)國(guó)家1,821所大學(xué)的6,700支參賽隊(duì)伍參加了預(yù)賽(分213個(gè)賽場(chǎng)舉行),預(yù)賽結(jié)束后僅有100支參賽隊(duì)伍闖入全球總決賽。全球總決賽將于2008年4月6日-10日在位于加拿大阿爾伯塔省的班夫溫泉城堡飯店舉行。
這一年度盛事由下列幾級(jí)比賽組成:
本地競(jìng)賽——各大學(xué)挑選參賽隊(duì)伍,或在本校范圍內(nèi)舉辦比賽選拔一支或幾支隊(duì)伍代表學(xué)校參加下一級(jí)比賽。選拔范圍為全球30多萬(wàn)名計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生。
區(qū)域預(yù)賽(2007年9月-12月)——今年的參賽隊(duì)伍增加了10%(其中不包括參加初賽的隊(duì)伍),從去年的6,099支增加到了6,700支。這些隊(duì)伍代表來(lái)自六大洲83個(gè)國(guó)家的1,821所大學(xué)。
全球總決賽(2008年4月6日-10日,加拿大阿爾伯塔省的班夫溫泉城堡飯店)——為慶祝阿爾伯塔大學(xué)成立一百周年,一百(100)支決賽隊(duì)伍將代表六大洲的頂級(jí)大學(xué)參賽,角逐獎(jiǎng)品、獎(jiǎng)金和展示權(quán)。
ICPC2011簡(jiǎn)介
第36屆ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽中國(guó)大陸共有5個(gè)賽區(qū),分別為大連賽區(qū)(大連理工大學(xué)承辦)、上海賽區(qū)(復(fù)旦大學(xué)承辦)、北京賽區(qū)(北京郵電大學(xué)承辦)、成都賽區(qū)(成都東軟學(xué)院承辦)和福州賽區(qū)(福建師范大學(xué)承辦)。
截至目前,大連、上海、北京、成都的網(wǎng)絡(luò)預(yù)選賽已經(jīng)結(jié)束;大連賽區(qū)區(qū)域賽也于9月25日在大連落下帷幕。大連賽區(qū)共有來(lái)自一百多所院校的155支隊(duì)伍參加角逐,比賽中獲得冠軍的為上海交通大學(xué)的“史詩(shī)”隊(duì),獲得金銀銅牌的院校、隊(duì)伍如下:
| 學(xué)校排名 | 學(xué)校名稱(chēng) | 隊(duì)伍排名 | 隊(duì)伍名 |
| 1 | 上海交通大學(xué) | 1 | 史詩(shī) (team29) |
| 2 | 清華大學(xué) | 2 | DivineRapier (team4) |
| * | 清華大學(xué) | 3 | machinator (team88) |
| 3 | 中山大學(xué) | 4 | SYSU_Metalgarurumon (team94) |
| 4 | 復(fù)旦大學(xué) | 5 | FDU_BGM (team5) |
| 5 | 浙江工業(yè)大學(xué) | 6 | 小和山職業(yè)技術(shù)學(xué)院 (team33) |
| 6 | 電子科技大學(xué) | 7 | 成電-宙斯 (team18) |
| 7 | 北京大學(xué) | 8 | 巴斯特 (team14) |
| ? | 北京大學(xué) | 9 | 若爆了 (team27) |
| 8 | 國(guó)防科技大學(xué) | 10 | 阿蕾泡菜 (team52) |
| ? | 北京大學(xué) | 11 | 麗華 (team106) |
| ? | 北京大學(xué) | 12 | OSU (team48) |
| 9 | 武漢大學(xué) | 13 | 旅途 (team25) |
| ? | 電子科技大學(xué) | 14 | 成電-阿波羅 (team57) |
| ? | 中山大學(xué) | 15 | SYSU_HolyAngemon (team11) |
| ? | 中山大學(xué) | 16 | SYSU_AtlurKabuterimon (team51) |
| ? | 復(fù)旦大學(xué) | 17 | FDU_Sanguosha (team43) |
| ? | 北京大學(xué) | 18 | OSU安格瑞扣得死 (team121) |
| 10 | 北京航空航天大學(xué) | 19 | 北航-1 (team16) |
?
acm練習(xí)題庫(kù):
http://www.programfan.com/acm/
http://acm.nyist.net/JudgeOnline/problemset.php
http://acm.hdu.edu.cn/
總結(jié)
以上是生活随笔為你收集整理的ACM国际大学生程序设计竞赛及练习题库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: FastFDS原理
- 下一篇: mkv怎么转mp4,mkv转mp4方法