精华内容
下载资源
问答
  • Codeforces

    千次阅读 2018-11-12 20:29:14
    可能很多人都久闻codeforces网站的大名,却苦于各种各样的区域性问题或玄学问题,没能真正地体验到cf所带来的极致魅力       2.关于codeforces   Codeforces 简称: cf(所以谈论cf的时候经常被误会成TX的那...

    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百科找到更详细的信息.  

          在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),也可以选择只看加了好友的选手的排名.此外,还可以看到某题有多少人通过的信息,这在某些情况下很有用. 
    关于比赛的事情大概就是这么多.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)进行排序.不仅仅是帮助做题,这个功能对于了解一道题的各种做法也是有好处的. 
    主要的东西就介绍完了.这里再补充一点一些零散的东西. 
      关于Rating的计算 : 这是一种类似Elo Rating的系统,可以在cf的FAQ或Wiki百科找到更详细的信息. 
      关于Contribution : 在用户信息页面会见到这个东西,它用来衡量一个用户对cf的贡献程度.这个数值取决于该用户所写的blog和他对其他的blog所作出的评论的“反响”.每个blog的下方和评论的旁边都会有一个往上和往下的箭头以及一个数字,表示你可以对他进行好或者不好的评价,而数字则显示当前已有的评价,而这就是前面说到的“反响”.点击了往下的箭头会让这个数值-1,点击了往上的箭头则会+1或+2,这里+2的条件是你本身的contribution不低于+25.如果你打算做评论,请谨慎,因为在贴吧里很正常的回复可能会被认为“没意义”或者别的原因而反响很差(比如在比赛预告帖回复Good luck everyone之类的可以被-12),随而contribution也会很难看.由于这样的原因,你可以选择完全可以无视这个数值. 
      关于GYM : 在gym里举办的比赛基本上是ACM/ICPC规则的,可以单干,也可以组队(人数似乎没有限制).gym的题目并不会在Problemset里显示,提交之后也不能看到数据(和常规比赛时一样,仅能看到一行TLE on test 137之类),不过在名字变红[即(International) Grandmaster]之后选上Coach mode就可以看到数据.gym里别人的代码的公开性也服从前述规则. 
    关于Virtual Participant : 有时我们会在某条提交记录的ID右上方看到一个小小的#号或者显示一个时间,鼠标移上去会出现Virtual Participant的字样.正如其字面意思,这意味着这个用户正在“虚拟”参加一场比赛.如果你虚拟地参加一场比赛,系统会在接下来的2小时内(如果gym的话另当别论)为你完全地模拟当时的情境供你练习——包括Standing等等. 
      关于奇葩的测评结果 : 这包括Compilation failed,Denial of Judgement和Judgement Failed.在你确认你的程序没什么重大问题之后,基本可以认定这不是你的问题而是系统出了点差错.Judgement Failed通常会呈现爆发的样子,一段时间内几页都是,当这种情况结束的时候就正常了;而Denial of Judgement仅会在某段时间内在特定的题目发生,原因可能是数据损坏之类的,可能要等上个一两天才能得到解决(也有可能在问题解决后被自动重新测评);Compilation failed我还没有见过…字面意思是编译器不干活? 
    附 各个头衔的Rating范围和名字颜色: 
    [2600, inf) International Grandmaster 红 
    [2200,2600) Grandmaster 红 
    [2050,2200) International Master 黄 
    [1900,2050) Master 黄 
    [1700,1900) Candidate Master 紫 
    [1500,1700) Expert 蓝 
    [1350,1500) Specialist 绿 
    [1200,1350) Pupil 绿 
    (-inf,1200) Newbie 灰 

           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按钮后它会把验证网站发到你的邮箱

     

    展开全文
  • codeforces

    2018-09-24 14:54:27
    codeforces497 A:theme:对数组进行某种排序后,最多有多少个元素  现在的数值比之前大?  Input:The first line contains a single integer n (1≤n≤10^5) — the length of the array. The second line ...

    codeforces497

    A:theme:对数组进行某种排序后,最多有多少个元素
      现在的数值比之前大?
      Input:The first line contains a single integer n (1≤n≤10^5) — the length of the array.  The second line contains n integers (1≤ai≤109) — the elements of the array.

    ​
    #include<iostream>
    #include<stdio.h>
    #include<vector>
    #include<algorithm>
    using namespace std;
    
    int const SIZE=100010;
    typedef long long ll;
    vector<ll>a;
    
    int main()
    {
        int n,cnt=0;
        cin>>n;
        for(int i=0;i<n;++i)
          {
             ll v;
             scanf("%lld",&v);
             a.push_back(v);
          }
        sort(a.begin(),a.end());
        int i=n-2,j=n-1;
        while(i!=-1)
        {
            if(a[i]<a[j])
            {
                --i;
                --j;
                ++cnt;
            }
            else --i;
        }
        printf("%d",cnt);
    }
    
    ​

     

    展开全文
  • Codeforces-源码

    2021-03-30 01:34:40
    Codeforces
  • CODEFORCES-源码

    2021-03-18 13:17:41
    CODEFORCES
  • CodeForces-源码

    2021-02-20 11:49:06
    CodeForces
  • CodeForcesCodeForces算法
  • codeforces-js Codeforces JS
  • 代码部队 Codeforces竞赛解决方案 我会上传随机的东西,不要期望所有的解决方案
  • codeforces-scraper:刮除来自codeforces的解决方案
  • codeforces拾遗

    2020-03-30 14:59:56
  • codeforces-navi Tampermonkey Codeforces主题扩展 你好! 我为Codeforces制作了一个绿色导航的深色主题,默认情况下,在夜晚这是一场噩梦般的夜晚,解决了问题。 安装: 安装。 安装。 捐款开放:)
  • Codeforces问题-源码

    2021-02-17 14:13:46
    Codeforces问题
  • codeforces_solutions 我对Codeforces问题的解决方案
  • 使Codeforces变得更好:多个评级图,彩色的排名,添加“隐藏/显示解决的问题”链接。 Chrome扩展程序使Codeforces更好:支持多个评分图表,通过使用的编程语言对排名进行着色,在“问题集”页面添加“隐藏/显示已解决...
  • codeforces.dev codeforces.dev 这是应用程序的项目模板。 它位于 。 要使用基于此模板创建一个新项目: npx degit sveltejs/template svelte-app cd svelte-app 请注意,您将需要安装 开始吧 安装依赖项... ...
  • Codeforces解决方案
  • codeforces-源码

    2021-03-31 23:33:21
    此回购旨在跟踪我在代码部队方面的进展。 CodeForces用户名:devansh_katheria
  • Codeforces Subsequences

    2021-03-14 12:59:02
    Karl likes Codeforces and subsequences. He wants to find a string of lowercase English letters that contains at least k subsequences codeforces. Out of all possible strings, Karl wants to find a ...

    Karl likes Codeforces and subsequences. He wants to find a string of lowercase English letters that contains at least k subsequences codeforces. Out of all possible strings, Karl wants to find a shortest one.

    Formally, a codeforces subsequence of a string s is a subset of ten characters of s that read codeforces from left to right. For example, codeforces contains codeforces a single time, while codeforcesisawesome contains codeforces four times: codeforcesisawesome, codeforcesisawesome, codeforcesisawesome, codeforcesisawesome.

    Help Karl find any shortest string that contains at least k codeforces subsequences.

    Input

    The only line contains a single integer k (1≤k≤1016).

    Output

    Print a shortest string of lowercase English letters that contains at least k codeforces subsequences. If there are several such strings, print any of them.

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    char a[20] = "codeforces";
    ll cnt[20];
    int main()
    {
    	ll k;
    	scanf("%lld",&k);
    //	memset(cnt,1,sizeof(cnt));
    	for(int i = 0; i < 10; i++) cnt[i] = 1;
    	ll pos = 0;
    	while (1) 
    	{
    		ll now = 1;
    		for (ll i = 0; i < 10; i++) 
    		{
    			now *= cnt[i];
    		}
    		if (now >= k)	break;
    		cnt[pos++]++;
    		pos %= 10;
    	}
    	for (ll i = 0; i < 10; i++) 
    	{
    		for (ll j = 0; j < cnt[i]; j++) 
    		{
    			printf("%c",a[i]);
    		}
    	}
    	printf("\n");
    }
    
    
    
    展开全文
  • Chrome扩展程序,它将实时输出的Javascript编辑器添加到Codeforces问题页面 Chrome扩展程序,它将实时输出的Javascript编辑器添加到Codeforces问题页面 支持语言:English (United States)
  • CodeForces 适用于问题的Python解决方案。 用户名: hopper19
  • codeforces enhancer 1.1.2

    2018-10-24 20:02:55
    使用于Google Chrome的Codeforces Enhancer 1.1.2插件安装包。 版本:codeforces enhancer 1.1.2 使用浏览器:Google Chrome
  • Codeforces刷题

    2019-10-04 11:48:17
    Codeforces100套刷题 Codeforces Round #506 (Div. 3) Educational Codeforces Round 49 (Rated for Div. 2) AIM Tech Round 5 (rated, Div. 1 + Div. 2) Codeforces Round #542 [Alex Lopashev Thanks-Roun...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 144,144
精华内容 57,657
关键字:

codeforces