TopCoder介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TopCoder介绍
/tc
这个网站可以说是一个程序设计比赛的网站,但是在题型,比赛形式跟ACM/ICPC极不相同。
该网站把中国纳入其赛区,大家可以上去那里跟来自全世界的程序员(事实上大多数也是大学生)进行更直接的交流,可能也是ACM/ICPC练兵的好地方吧。
该网站每个月都有两到三次网上在线比赛,根据比赛的结果对参赛者进行新的排名。
参赛者可根据自己的爱好选用Java, C++或C#进行编程。
参赛者须在大概1小时15分钟的时间内完成三道不同难度的题目,每道题完成的时间决定该题在编程部份所得的分数。
而比赛可分为三部份:Coding Phase, Challenge Phase和System Test Phase,所以比ACM/ICPC 多了Challenge Phase,这部份是让参赛者浏览分配在同一房间的其他参赛者的源代码,然后设法找出其中错误,并提出一个测试参数使其不能通过测试。
如果某参赛者的程序不能通过别人或系统的测试,则该参赛者在此题目的得分将为0。
关于其比赛的具体规则,详看该网站上的公告。
下面介绍一下参加步骤:
必要准备
1. 要参加TopCoder的比赛,需要一些准备工作要做。
首先,需要注册成为TopCoder 成员,这没什么好介绍的,大家填写相关内容就得了,注册网址
/reg/index.jsp
Address可以暂时不填(有奖金再补拉:)),Handle和PassWord要记好,登陆TopCoder Arena 时要用的;Email也请认真填,会将近期赛事的通知发到这里;Default Language 选择你熟悉的语言,语言种类在竞赛中可以改,不过设置了默认值以后就省了很多麻烦。
都填好后,按Continue。
这里还有一些需要填写的资料,在School Name里统一填上“WuYi University”吧,这样无论是同学间交流,还是系统统计上都会好些。
2. 下载安装必要的软件-TopCoder Arena(TopCoder竞技场),TopCoder Arena是一个纯Java应用程序,它既是Applet也是应用程序,所以需要安装Java环境: ContestAppletProd.jnlp和jre-1_5_0_06-windows-i586-p.exe。
以上两个文件在 免费邮箱WyuAcm@(密码:WYUACM)可以下载。
(请下载附件,不要下载信件,保留信件以便其他同学下载)
建议先下载ContestAppletProd.jnlp,双击看看能否执行,能的话就不需要下载后面那个Java环境了;如果不能运行,则需要安装Java环境,可以在邮箱里下载(速度可能会慢一些),又或者到Java官方网下载:/en/download/index.jsp点击“Download Now”,按提示操作。
3.安装jre-1_5_0_06-windows-i586-p.exe
4.直接运行ContestAppletProd.jnlp (第一次运行需要在线下载Arena环境,以后除更新外,就不用再下载了)
5.打开TopCoder Arena,登录进入,就可以开始参加比赛了。
比赛概况
TopCoder的比赛分为算法比赛和组件开发比赛两类,我们主要参加算法比赛。
每年TopCoder都会有几个算法编程竞赛和锦标赛,参赛者根据其排名等信息被分成Div1和Div2两大组,每组又分成若干个房间(ROOM),进行一个或多个回合有时间限制的比赛。
一个回合的比赛通常叫SRM,每隔几天就会有一次。
在每个回合,参赛者必须编写代码来解决三个不同难度的问题。
你可以在TopCoder Arena里进行编辑,编译和测试。
一个典型的问题包含一个必要的方法说明,几段用于描述问题的文字和一个说明性的实例子。
在TopCoder Arena里,你可以看到过去真实的问题。
细则
参赛者在竞赛过程当中,可以选用以下4种编程语言的一种-Java,C++,C#和VB。
熟悉C语言但是不熟C++?没有关系!请参看针对C语言程序员的C++。
这个网页简单介绍了如何针比赛学习C++。
此外,请点击上面的竞技场链接,在训练室中花一些时间熟悉环境。
/pl/?module=Static&d1=gccj05&d2=ZH_cpp
一次比赛分四个阶段:
编码阶段
在指定的日期和时间,参赛者进入竞赛平台,以每10到20人一组被安排进入相应的虚拟房间。
所有参赛者都将获得相同的3道竞赛题,3题的难度递增。
此阶段竞赛中,竞赛者须在最短时间内完成题目,提供正确的方案代码,代码提交得越早,竞赛者得到的分数越高。
在竞赛的整个过程中,排名榜会显示竞赛者的累计分数。
大约80分钟左右。
休息阶段
顾名思义,就是用来给参赛者休息,做简单调整的时间,大约10~20分钟。
挑战阶段
在挑战阶段,参赛者不但可以看到其他参赛者提交的方案代码,还可以给出测试数据,使其他参赛者提交的程序得到错误的运算结果,从而推翻其他参赛者所提交的方案。
这种方式,对于编程人员来说是最直接的竞赛形式。
在这个阶段,参赛者的测试数据若能成功推翻他人提交的代码则可得分;反之,将被扣分。
时间为25分钟左右。
系统测试
在系统测试阶段,系统会自动对每个提交方案代码进行测试,确定其正确程度和可行性,并以此给出参赛者相应的分数。
整个评测过程耗时很短,参赛者当场可以知道自己的比赛结果。
TopCoder Arena简介
1.登陆,没什么好说的。
(Username 为注册时的Handle)
2.主界面:
3.菜单介绍
Search 查找当前登陆用户 Logoff 退出
Chat Room 1 公共聊天ROOM 1、Chat Room 2 公共聊天ROOM 2
Practic
e
Rooms 练习Room
在这里有以前举行的一些比赛的ROOM 。
选择一个ROOM 进去,就能重现当时比赛时的情景,可以做练习。
所有的一切跟正式比赛都一样,只是没有系统计时和系统测试,要自己选择系统测
试来运
行系统测试。
当然,这时的成绩是不作统计的。
当前ROOM 内的登陆用户
Active Contests 是当前比赛信息 Enter 是进入自己所属的ROOM (系统自动分配);Registrants 是已经注册参加该比赛的选手;Division Summary 是分组成绩汇报。
现在的截图是SRM287已经结束后的情景,新的SRM 开始前就会更新的。
Enter 会变
成Register ,点击可以报名参赛。
开始比赛时,点击Enter 进入自己的ROOM ,接着开始比赛。
练习和比赛的具体过程请接着看下面的介绍。
实战
进入一个ROOM 后:
这里可以选择你要做的题目,分数代表题目的难度
注意,从第一次打开某题开始,就对该题计时,之后该题的方案提交的越早,该题得分就越高。
选择题目 成绩汇总
编码阶段
休息阶段
挑战阶段
在任何时候,你都可以在选手名上做一些鼠标操作。
例如,右击某选手名,出现Info 和History 选项。
Info 是该选手的一些资料
(也可以通过左双击选手名获得)
History 是该选手在这次比赛的事件记录
编码阶段
注意:每次提交前请先重新本地编译!
挑战阶段
问题、要求描述 及 一些测试范例
点击,打开汇总窗
这里可以看到该ROOM所有选手的提交状况。
分数代表该选手在相应题目上的得分。
双击任一分数,或右击并选择相应项,可以打开该选手该题目提交的代码:
查看代码,寻找错误的地方,并根据该错误设计一个能让该程序运行错误的用例,点击
,输入用例并提交,数秒后系统将立即返回挑战结果。
如果挑战成功,则被挑战人该题减为0分,挑战者最后成绩加50分;挑战失败则被挑战者该题分值不变,挑战者最后成绩减25分。
这是SRM 的一般挑战规则,具体比赛按具体要求而定。
系统测试阶段
等待系统对所有参赛者的合法提交进行测试,测试完成后,选手的最后成绩就确定了。
完成后,点击可以看到结果:
另外
因为,练习时没有系统自动进行检测,所以,系统测试要通过人手选择来模拟进行:
Clear All Problems 清除自己在本ROOM 所有问题的提交记录
Clear Problems 清除自己在本ROO M 指定问题的提交记
录
Run System Test 进行系统测试
里更多的资源
请登陆,里面有更加详尽的介绍和更多的资源。
点击Algorithm Competitions里的Compete进入算法比赛专题,这里应有尽有了。
是日期安排,进入后可以看到本月的所有比赛安排(包括组件
赛),如果没有指定邮件自动通知的话,就要经常留意这里的安排,
要不错过了比赛就可惜了
这是最新比赛问
题分析及解答。
他的方
法通常会是异常简练
而有效,通常都会使你
觉得“无地自容”: )
这个菜单里的每一项
对分析和总结比赛都
很有帮助的,自己探索一
下了
右边这些就是排名了,我不
太关心这些,应为没有我的名字嘛
还有一个比较有用的,就是了,通过他,你可以找到任何一个注册选手的详细资料,如krijgertje
下面的线图为比赛成绩跟踪图,将鼠标放在任一比赛的红点上并单击时,可以看到该选手在该场比赛表现的汇总等信息。
当然,最主要的,还是可以看到自己的汇总吧。
好了,就写到这里了,希望这篇简短的介绍能提高你对TopCoder的兴趣,帮助你进入TopCoder的世界。
最后,祝你能在TopCoder的比赛里获得好成绩,玩得开开心心吧。
2006.02.08 k。