codeforces的正确打开方式

1.背景

可能很多人都久闻codeforces网站的大名,却苦于各种各样的区域性问题或玄学问题,没能真正地体验到cf所带来的极致魅力


而网络上关于这方面的博文太少了(至少我没找到过),于是就写了这样的一篇博文

 


 

 

2.关于codeforces

 

Codeforces
简称: cf(所以谈论cf的时候经常被误会成TX的那款游戏).
网址: codeforces.com
  这是一个俄国的算法竞赛网站,由来自萨拉托夫州立大学、由Mike Mirzayanov领导的一个团队创立和维护,是一个举办比赛、做题和交流的平台.举办比赛和做题就不说了,“交流”指的是自带blog功能,可以求助/发布题解之类.官方语言是俄语和英语,因此可能有些偏僻的题目的题解是用俄语写的,别慌,扔给Google Translate翻成英文,可读性还是很不错的.至于英语,cf上Russian English确实有,但并不严重,题目里偶尔会出现很奇怪的表达方式或者不常用的词汇,这时候就借助样例吧,找个人问问也是可以的.cf最大的特点是比赛,所以接下来主要的篇幅用于介绍cf传统比赛的规则.

 


 

 

3.关于比赛

       在cf,所有的用户根据在以往比赛中的表现被赋予一个Rating并冠以不同的头衔,名字也会以不同的颜色显示。

 

    技术分享

 

       比如Expert是蓝色,Master是黄色,因此我们通常以颜色代指头衔.选手们按Rating以1700为界划分为Div.1和Div.2两类,相应地,cf上的比赛也会指明是Div.1还是Div.2,抑或同时进行.Div.1的比赛较难;如果同时进行,Div.1的ABC三题会和Div.2的CDE三题相同.每次比赛结束后Rating都会依据此前各个选手的Rating和公式重新计算.对于没有参加过比赛的新用户,在比赛后重新计算Rating的时候,他此前的Rating会被视为1500.


  在比赛中,选手有2个小时的时间去解决5道题,而解决某题得到的分数由该题当前的分数减去(不成功的提交次数)*50,这里,某道题的分数是由比赛开始时的分数随时间线性减少得到的.同时,这里的“解决某道题”是指Pretest Passed,即,通过了一次仅含部分测试点的测评,而最终决定是否得到这道题的分数,要看比赛结束后的统一测评(System Test),如果在这时没有通过,就称FST(Failed System Test).在比赛中的提交可以看到在哪个测试点出了什么问题(例如,仅一行WA on pretest 3).


  同一个Div的选手将被划分到若干个Room里,每个Room大概30位选手;当某道题Pretest Passed之后,可以选择锁定(Lock)该题代码,之后就可以查看同一个Room内其他选手该题的代码(当然了,这也是已经通过pretest的),并试图找出其中的漏洞,自己出一个数据(可以手打,也可以提交数据生成器)让这个代码不能通过,这就是Hack,有时也称Challenge.一次成功的Hack可以得到100分,而如果没有成功,将会被扣50分,分别被称为(un)successful hacking attempt.


  在比赛中,选手可以看到实时的排名(Standing),也可以选择只看加了好友的选手的排名.此外,还可以看到某题有多少人通过的信息,这在某些情况下很有用.

 


 

 

4.关于PROBLEMSET

 

       cf题库的所有题目都是在该平台上举办过的比赛的赛题,尽管WJMZBMR曾经表示由于出题人很杂cf的题目质量参差不齐,但我个人认为还是够可以的,两个小时五道题也确实很能让人得到锻炼.和Spoj形成鲜明对比的,cf的机子效率很不错,所以很容易培养出STL依赖症等等不良代码习惯,应当引起足够的注意.


  在cf上做题的过程当中如果遇到困难,首先可以看数据.数据从某种程度上来说是公开的,在提交记录页面可以看到所有你的程序运行过的数据,但是太大的数据也只会显示前几行,因此也不算完全公开.cf的测试数据笔数通常会让习惯了10个点的人大吃一惊,一道题动辄几十个测试点,甚至有的有200多笔.通常来说,前面大概5组是比赛时的Pretest,一般会尽可能的涵盖各种情况,也有放个大数据卡TLE的;其后的数据规模递增,但是最后几组又不见得是极限数据——这是比赛时Hack的成果.Hack成功的数据会被追加到该题的测试数据当中.


  如果数据不能解决问题,可以试图去找题解.题目页面的右下角会标出它所属的比赛的相关文档,通常会有Announcement(赛前和赛中的公告,其中赛中的公告通常是明确题意之类),有些则会有Tutorial,这就是题解,顺带一提cf上另外一个表示题解的词是Editorial.一次比赛的题解可能不是官方的,也可能不包含该次比赛全部的题目的,也有可能是用俄语写的(前面提到过了,翻译成英语就好),也有可能有好几篇(这会以Tutorial #1,#2的形式标识).


  近期的比赛多半都有官方题解,以前的就不好说了.这时候需要借助另外一个神器:神犇们的代码.cf上普通题库的所有的代码都是公开的,并且支持按照提交先后(Judging Time),运行时间(Execution Time)和代码长度(Solution Size)进行排序.不仅仅是帮助做题,这个功能对于了解一道题的各种做法也是有好处的.

 


 

 

5.其它的一些操作

       1.关于Rating的计算 :

        这是一种类似Elo Rating的系统,可以在cf的FAQ或Wiki百科找到更详细的信息.  

       2.关于Contribution :

        在用户信息页面会见到这个东西,它用来衡量一个用户对cf的贡献程度.这个数值取决于该用户所写的blog和他对其他的blog所作出的评论的“反响”.每个blog的下方和评论的旁边都会有一个往上和往下的箭头以及一个数字,表示你可以对他进行好或者不好的评价,而数字则显示当前已有的评价,而这就是前面说到的“反响”.点击了往下的箭头会让这个数值-1,点击了往上的箭头则会+1或+2,这里+2的条件是你本身的contribution不低于+25.如果你打算做评论,请谨慎,因为在贴吧里很正常的回复可能会被认为“没意义”或者别的原因而反响很差(比如在比赛预告帖回复Good luck everyone之类的可以被-12),随而contribution也会很难看.由于这样的原因,你可以选择完全可以无视这个数值.  3.关于GYM : 在gym里举办的比赛基本上是ACM/ICPC规则的,可以单干,也可以组队(人数似乎没有限制).gym的题目并不会在Problemset里显示,提交之后也不能看到数据(和常规比赛时一样,仅能看到一行TLE on test 137之类),不过在名字变红[即(International) Grandmaster]之后选上Coach mode就可以看到数据.gym里别人的代码的公开性也服从前述规则.

       4.关于Virtual Participant :

        有时我们会在某条提交记录的ID右上方看到一个小小的#号或者显示一个时间,鼠标移上去会出现Virtual Participant的字样.正如其字面意思,这意味着这个用户正在“虚拟”参加一场比赛.如果你虚拟地参加一场比赛,系统会在接下来的2小时内(如果gym的话另当别论)为你完全地模拟当时的情境供你练习——包括Standing等等.  

       5.关于奇葩的测评结果 :

        这包括Compilation failed,Denial of Judgement和Judgement Failed.在你确认你的程序没什么重大问题之后,基本可以认定这不是你的问题而是系统出了点差错.Judgement Failed通常会呈现爆发的样子,一段时间内几页都是,当这种情况结束的时候就正常了;而Denial of Judgement仅会在某段时间内在特定的题目发生,原因可能是数据损坏之类的,可能要等上个一两天才能得到解决(也有可能在问题解决后被自动重新测评);Compilation failed我还没有见过...字面意思是编译器不干活?

 


 

 

6.关于注册:

点击页面右上方的Register,

技术分享

由上到下分别为用户名,邮箱,密码,和确定密码(这些没什么好说的吧)

注:qq邮箱是可以用的 废话!

点击Register按钮后它会把验证网站发到你的邮箱

技术分享

验证完后你就可以愉快玩耍了吗?

不,你还需要等等!

当登临了账号时,某些小盆友可能会遇到这种情况:

技术分享

什么!!!它居然认为用户是机器人,而且验证码呢???

别急,这就是上文提到的区域性问题,这时候就需要科学上网来帮助你了

1.科学上网的钥匙

蓝灯是一款优秀的科学上网软件(速度还是挺快的QAQ),对付cf是完全足够的

进入蓝灯的官网:https://getlantern.org/en_US/

进不去?貌似连蓝灯都需要FQQAQ ,不用怕,还有小路

链接:http://pan.baidu.com/s/1miQh0dM  密码: 3npd

技术分享

点击下载,打开软件之后就可以看到验证码了(要加载3秒钟左右)

技术分享

以该图为例,依次输入PAWLINGBRASIL后,点击Submit,就可以愉快玩耍了!

文章来自:http://www.cnblogs.com/muzu/p/7616746.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3