对于算法类程序设计竞赛,被全世界广泛公认的有3项大赛,分别是于1989年创办,代表了高中生学科竞赛最高荣誉的IOI(International Olympiad in Informatics,国际信息学奥林匹克竞赛);由美国Topcoder公司从2001年开始举办,在个人程序设计竞赛中最具权威的Topcoder Algorithm比赛(TCO是这项系列赛的年度总决赛);以及于1970年创办的,在团队程序设计竞赛中最具权威的ACM/ICPC(国际大学生程序设计竞赛)。参加TCO比赛的选手有许多都是ACM世界冠军队成员,或者是IOI的金牌获得者,可以说都是计算机程序设计竞赛领域的精英人士。
topcoder的竞赛页面地址:http://www.topcoder.com/tc
topcoder竞赛有算法,软件设计,软件开发,高中生算法竞赛,马拉松赛之分。每次比赛根据最终成绩可赚取rating。成绩优者可赚取一定数量的dollar。
首先需要在topcoder下注册个帐号。填够资料,然后选择你想参加的竞赛类型。一般如果资料里填写的是大学生就不要参加高中生竞赛,不然会被封号。
有了自己的帐号后,登陆,重新进入竞赛页面,可以看见左上角的菜单:
自动安装玩竞赛平台之后,出现登陆界面,输入之前注册的帐号名和密码。首先进入的是竞赛聊天室。然后选择active contests(如果有比赛的话,一般看topcoder首页的通知)。一般需要register一下,然后在registrant列表里看见自己的用户名就说明比赛注册成功了。
然后到了比赛阶段每个人被随机分配进一个div的一个room中,一般高手进div1,新手进div2,每个div一般有几个room。进去之后可以比赛了。
算法比赛分为3个阶段:
1、coding phase:这个阶段系统给出3道题,分别为250,500和1000分题。难度依次递增。在规定的一个半小时编码阶段内完成这3题。进入答题界面后,首先选择语言类型,然后题目的要求就会根据语言类型变化。比如java里要求输出是int[],C++里往往就是vector。除了题目描述之外,还有几组测试输入和输出示例,看这个往往对非英语母语选手有很大帮助。最后的测试阶段你也可以用这些示例数据测试程序正确性。你可以离线编译完题之后,将代码复制到界面的代码区里,然后compile检查编译错误,成功后用test测试程序,觉得可以过关后就submit。这时你的程序就不能再改了。提交的越快分数会越高。
2、一个半小时的代码阶段结束后休息短暂的10分钟就是挑战阶段,challenge phase:这个阶段每个room里的选手可以互相看对方的代码,并挑错,但不能复制代码到自己的编译器里运行,只能看代码。然后如果你觉得对方的代码有错,可以用测试数据challenge对方。如果对方的程序不对你就挑战成功,有加分。如果对方程序正确,你挑战失败,要扣去20分。当然你要抢在别人cha,不然就没加分的机会。
3、最后阶段就是topcoder的系统测试了。这时等系统认为你的程序过关之后你的分数就定下了,如果系统测试你的程序失败了则继续扣除你的分数。最终的结果就是你的final score。你可以看summary了解排名积分情况。
非常抱歉!本站不支持旧版本IE浏览器~~建议使用IE10/IE11/Chrome/Firefox/Safari等高级浏览器浏览。