美国计算机协会(Association for Computing Machinery; ACM),所以用ACM来描述程序设计其实是不合理的。
国际大学生程序设计竞赛(International Collegiate Programming Contest; ICPC)
ACM-ICPC:合并就是老美制订的大学生程序设计竞赛体系(规则等等),简称”ACM“,所以有了ACM培训、**省ACM大赛等等。
规则:
1、以队伍的方式参赛,一个队伍三名队员,一个队伍共用一台计算机;
2、题目大约10道左右,比赛时间5个小时,前4个小时公榜(可以实时看到自己队伍排名),后一个小时封榜;
3、语言可以有很多种:JAVA、C++、C、Python等;
4、可以携带纸质参考资料,但是不能携带电子资料(比如U盘);
5、按照解题数目和解题时间来排名,数目越多排名越前,相同数目则看总的用时量;
6、每提交一次错误(没有通过的)答案,总用时量增加20分钟。(防止试错)
提交反馈:
1、Accepted. ——通过!(AC)
2、Wrong Answer.——答案错。(WA)
3、Runtime Error.——程序运行出错,意外终止等。(RE)
4、Time Limit Exceeded. ——超时。程序没在规定时间内出答案。(TLE)
5、Presentation Error. ——格式错。程序没按规定的格式输出答案。(PE)
6、Memory Limit Exceeded. ——超内存。程序没在规定空间内出答案。(MLE)
7、Compile Error. ——编译错。程序编译不过。(CE)
准备入坑:
1、掌握以上提到的一门或多门程序设计语言;
2、重点是算法,面向对象思想等等使用的可能性比较低
3、数据结构和一些代数知识(具体代数等等);
4、STL的使用(C++)
5、思想准备:时间 、心理承受能力、耐性耐力等等
作用:学ACM,刷OJ网站题不一定肯定获奖,但是能够提高编程的逻辑思维能力,C/C++的程序员尤其推荐。(打不了NBA就不打篮球了?)
初学者刷题OJ网站(Online Judge)
2、Welcome to Hangzhou Dianzi University Online Judge (hdu.edu.cn) 杭电
3、Welcome To Online Judge (sdust.edu.cn) 电子科大
4、hunnuoj 湖大
5、Welcome To PKU JudgeOnline (poj.org) POJ 北大