Topcoder:在线算法比赛的始祖

Topcoder是一个知名的在线编程大赛平台,是在线算法比赛的始祖,引入了颜色,Challenge,Virtual Participation,Room等概念,由Jack Hughes在2001年4月创立,后被Appirio和Wipro相继收购。Topcoder起初为大学学生举办SRM(每场时长1.5小时的算法竞赛),后来在逐渐的发展下,平台在Topcoder挑战的基础上开始举办TCO(Topcoder公开赛)。

Topcoder(https://www.topcoder.com/)是一个程序设计比赛的网站,题型和比赛形式跟ACM/ICPC极不相同,在每一次Topcoder挑战结束之后,所有参赛者可以自由访问优胜者的代码并以此来进行比对,对自己的编程能力进行提升。该网站把中国纳入其赛区,大家可以上去那里跟来自全世界的程序员(事实上大多数也是大学生)进行更直接的交流,是ACM/ICPC练兵的阵地之一。该平台也是全球最大的软件研发众包竞赛类平台。平台上,每个项目的周期平均在1到2周,所有人都可免费注册参加。参赛者在规定时间里提交解决方案,最终获胜者会获得发包方事先设定的奖金。每位注册者的个人信息是公开的,在参赛前可以点击该场竞赛,查阅已经参加这次竞赛的对手的个人信息(包括获胜次数、技能等)。

一场TopCoder的比赛是75分钟 Coding Phase 做题,5分钟 Intermission 间歇,15分钟Challenge,就和Codeforces的Hack差不多。75分钟中共有三道题目,较为典型的分数分布是250-500-1000,没有部分分。随着时间的流逝,分数会逐渐缩水。需要特别注意的是,TopCoder的分数并非是按照AC时间计算的,而是按照从你打开题目到提交代码的时间计算的。

1、登陆注册

Topcoder的会员注册没有门槛,在填写相关个人信息之后即可成为会员。

2、开始挑战

The community——Compete——All challenges

该页面上显示的截止当前的所有正在进行中的竞赛,可以看到正在开放的比赛有47场。

3、进入比赛

选择一个Contest,页面上会有任务描述、奖金金额、比赛截止时间、已经参赛的人等信息。点击“register”即可参赛。

首次参赛,则会出现以下页面,点击“I Agree”。已经参加过该平台的其他项目,则不会出现该页面,需等待审核,“register”由灰色变成红色的“Unregister”,即参赛成功。

4、提交代码

点击“Show Deadlines”,显示该场竞赛的时间节点,包括注册截止时间、提交截止时间、评审截止时间等。注意一定要在截止时间前提交。

点击“Submit”进入提交页面,将比赛文件添加到红色框内即可。即可完成整个竞赛。

在Challenge时,你可以看到任何选手的任何代码,包括自己没能通过的题。提供一组数据使得该选手出错,你就获得了50分,否则失去25分。在15分钟之后将会进行System Test。按照经验SystemTest可能在一两分钟之内完成。如果你打开榜的话,会看到不断有人通过系统测试,分数将会在一两分钟之内更新,题解也马上会发出。

5、客户端

如果想要在TopCoder上做题训练,效率最高的办法当然是使用一个配置了插件的客户端。需要注意训练房间和比赛的规则是一样的,你提交之后什么也不会测,需要在上面的控制栏里面选择”Run System Test”才能够测试所有测试点。

Topcoder的题目代码大多不是很长,但是思维复杂度较高。而且似乎动态规划类型的题目比较多。Topcoder的评测机很快,并且开-O2优化,时间限制默认为2秒,内存限制默认为256MB,基本不用担心被卡常数等问题。

Topcoder的项目类型涵盖了诸多的编程知识点,单说dev就可以细分很多类型分支。前端(Angular 、react、jQuery),后端(Nodejs,Java,Python,http://asp.net core),手机(IOS、Android,React Native,Ironic),底层(C++)等等。并且在Topcoder上获得的成绩只与个人能力有关。

Topcoder上的项目基本用github和gitlab做仓库,且公司自己很多内部的项目都放在github上面且开源,直接就可以找到。

扫码获取备赛计划,考前查缺补漏、重点冲刺

【免费领取】相关真题及解析,还有一对一学术活动规划!

翰林国际教育资讯二维码