Codeforces游玩攻略
1. 简介
Codeforces是全球最著名的在线评测系统之一,这里有高水平的选手,高质量的题目,高密度的比赛。该网站由俄罗斯的一个团体创立并负责运营。当然,该网站上大部分博客、评论、题面都是英语的。
2. 网址
Codeforces
在线评测系统的网站为
www.codeforces.com
。现在,您可以在浏览器中输入该网址或单击左侧链接进入Codeforces在线评测系统。
3. 使用
1. 主界面
我们首先了解一下顶部菜单栏的功能:
HOME:返回主页
TOP:最近更新的文章
CONTESTS:所有比赛
GYM:一些非官方的比赛
PROBLEMSET:题库
RATING:用户比赛积分排名
API:一些接口函数
剩下的几个是定期的活动。
在整个网站的右上角是登录和注册按钮,若您没有账号,则建议您先注册账号,再阅读剩下的部分,注意注册账号时的验证码需要科学上网才能显示。
登录完成后,我们看到网站变成了这样:
其实没变多少
侧边栏的内容依次为:即将举行的比赛、用户个人信息(注意若您没有参加过计分的比赛,则不显示Rating这一行)、比赛积分最高的前十个用户等等。
而占主页最大位置的是重要的置顶文章,这些文章通常是比赛预告、网站重大更新的通知等。
2. 社区
通过以下几种方式,您可以查看文章:
-
单击首页置顶文章或者TOP菜单中的文章的标题
-
直接输入网址
-
通过侧边栏最后的”Recent actions”
打开文章后,界面是这样的:
细心的读者可能发现了,文章最底部以及评论右侧均有一个绿色的正三角与红色的倒三角,这就是Codeforces的“赞”和“踩”功能,在英语中称为upvote(s)和downvote(s)。
3. 比赛
名字颜色
Codeforces在线评测系统最吸引人的就是它独特的比赛系统了。在Codeforces上,每名用户都拥有比赛积分(即Rating)(新用户默认为1500),比赛积分会影响用户的名字颜色,具体来说就是这样的:
<1200:灰
<1400:绿
<1600:青
<1900:蓝
<2100:紫
<2300:橙
<2400:橙
<2600:红
<3000:红
>=3000:黑
注意,这里的黑名指的是首字母为黑色,其余字母为红色(所以大部分人叫黑红名),例如
T
LE
\color{black}\textbf{T}\color{red}\textbf{LE}
T
LE
。真正的黑名是网站管理员,例如
MikeMirzayanov
\color{black}\textbf{MikeMirzayanov}
MikeMirzayanov
。没有参加比赛的用户默认没有名字颜色(其实就是黑色),例如
csacademy
\text{csacademy}
csacademy
。
有人也许发现了,上面的表中有两个橙、两个红,这是因为这两种颜色都不仅仅对应着一个称号(分开成了两个称号),所以有可能您会发现两个红名的用户称号不同。
比赛种类
Codeforces上举行的比赛一般有4种,分别是Div.1,Div.2,Div.3和Educational Round。先讲讲Educational Round,Educational Codeforces Round一般题目较多,采用扩展ACM-ICPC赛制,即提交代码立即出结果,错误一次计10分钟罚时。但是为什么叫“扩展”呢,因为比赛结束后会有12个小时的全网开放hack时间。
剩下的就是Codeforces最常见的Div.1,Div.2,Div.3的比赛了,我们先用一张表格了解一下这三类比赛(个人看法)。
种类 | 难度 | 人数 | 次数 | 参加人群 |
---|---|---|---|---|
Div.1 | 大 | 少 | 少 | 橙(紫)名以上(含) |
Div.2 | 中等 | 多 | 多 | 橙(紫)名以下(不含) |
Div.3 | 小 | 较多 | 多 | 蓝名以下(不含) |
关于表格内的内容:当一场Div.2的比赛和一场Div.1的比赛同时进行时,紫名只能参加Div.1,否则才可以参加Div.2。
当然,如果您对上面的解释不清晰,您可以查看比赛预告中的说明,或者在比赛预告中的评论中提问。
比赛流程
在参加一场比赛之前,您需要报名。首先单击CONTEST进入页面,然后单击要报名的比赛后面的 Register >> ,在弹出的页面中单击Register即可。
比赛开始后,我们便可以单击 Enter >> 进入比赛页面享受Codeforces的高质量比赛了!
比赛页面的内容大致如下:
关于Codeforces赛制:
Codeforces赛制的题目会有两套数据,一套称为Pretest,另一套称为System Test,当比赛进行时,您的提交将会用Pretest测评,若通过所有Pretest,则会显示
Pretests passed
\color{green}\text{Pretests passed}
Pretests passed
,否则显示错误的Pretest编号和错误类型,例如
Wrong answer on pretest 3
\color{red}\text{Wrong answer on pretest 3}
Wrong answer on pretest 3
,并且还会被罚50分(如果编译错误则不会罚分,错在第一个测试点也不会被罚分)。
当您的一道题目
Pretests passed
\color{green}\text{Pretests passed}
Pretests passed
后,您可以单击题目列表中那到题目后面的“锁”的符号,这称为锁题,当您锁了一道题后,您就不能再次提交该题了,但是您可以查看同一个房间中其它人本题的代码,若找到了其他人代码中的错误,您可以向他发起hack,即提交一组测试数据使得他的代码错误(例如Wrong answer等等)。一次成功的hack可以使您获得100分,不成功则扣掉50分。
房间:参加比赛的所有用户大约每40各人组成一个房间,只有在房间里的用户才能互相hack。
发起hack的方式是:双击您的房间的排行榜中的任何一个绿色数字,再单击通过的提交的编号查看代码,如果找到了错误,那么您可以单击hack it!,然后输入数据或者上传数据生成器,单击hack即可。
注意
:锁了的题不能再提交,也就是说如果您锁了一道题,但是您的程序被hack了,那么您就没有补救的机会了。所以,
叉人有风险,锁题需谨慎
。
比赛结束后不久就会进行System Test,就是将您已经通过Pretest的程序再测试一套数据,这套数据包括所有比赛中成功hack的数据(所以在Codeforces上有些题目可能拥有上百个测试点),只有您的程序通过了System Test,您的程序才是真正通过了,否则称为Failed System Test(FST),这道题也就不得分了。
如何读懂排行榜
Rating
比赛结束后Codeforces系统会自动根据您的比赛排名为您计算Rating。
4. 题解
若您在做题过程中遇到了困难,那么下面的内容可能对您有帮助:
-
找到该题侧边栏中的”Contest materials”,然后单击”Tutorial”或者”Editoral”,会有英语(极少数为俄语)题解。
-
Codeforces上的提交记录和代码都是公开的,你可以找到该题其它人的提交记录,查看代码。
注意:不要提交其它人的代码,否则您会被警告甚至会被封号。
- 发贴求助。
最后
以上就是Codeforces在线评测系统的游玩攻略了,祝您能在Codeforces上收获知识与乐趣!
鸣谢
洛谷的一篇目的相同的文章提供的图片
参考:
Codeforces游玩攻略