详细介绍Codeforces

简介

Codeforces是一个由俄罗斯萨拉托夫州立大学建立并维护的算法竞赛网站,优势在于其频繁且高质量的在线比赛。
网站提供英语和俄语两种语言。但是由于出题人的多样性,可能会出现少量不标准的英文,这种情况下,俄文在Google Translate中转成英文的效果也是不错的。

赛制

Codeforces自创了一套独特的赛制。这套赛制类似于标准的ACM赛制,但是相比ACM赛制又更加的多样化。

积分

新用户注册后的初始积分是1500。
在一场比赛后,每个选手的积分会根据这名选手(或者其所在的队伍)在本场比赛中的分数和排名按照特殊的公式重新计算。
在Codeforces的积分排行榜上,可以根据国家,地区,学校对排名进行筛选。
每个用户的头衔以及昵称颜色取决于你的积分

积分颜色头衔
≥ 3000黑色&红色Legendary Grandmaster
2600 — 2999红色International Grandmaster
2400 — 2599红色Grandmaster
2300 — 2399橙色International Master
2100 — 2299橙色Master
1900 — 2099紫色Candidate Master
1600 — 1899蓝色Expert
1400 — 1599青色Specialist
1200 — 1399绿色Pupil
≤ 1199灰色Newbie

评测

在Codeforces的比赛进行的时候,提交的代码会进行Pretest(预测试)并在比赛结束后进行统一的正式测评

得分

每场比赛中,

集训机构藏身广州,打着学有余力的旗号,各高校如何回应?

1.jpg

大年二七,年味儿正浓。但是,不少全国各地的中学生却来到了广州。他们不是利用假期前来观光旅游的,而是进粤参加竞赛培训的。记者明访发现,一个未经教育部批准的机构打着“候选队选拔”“精英集训”的旗号,开设冬令营,面向全国各地中学发放名额。这个机构使用广州的学校,组织学生进行竞赛集训,真实考试。短短6天的培训,报名费竟然高达3500元左右。

记者了解到,不少高一、高二学生参加这样的冬令营,目的是希望能够获得各类学科竞赛的奖项,从而在高校自主招生、保送生选拔录取中占得先机。为此,记者向多所“双一流”高校招生负责人求证,得到的一致答复是,获得自主招生认定与是否参加过竞赛培训没有任何关系,学生申请自主招生可以通过各种材料证明自己的特长,竞赛获奖证书只是其中很小一部分,并且自主招生最终认定结果,必须经由申请高校考核后确定。

学校变成集训教室

百名中学生进粤参加竞赛培训

大年二七,一辆又一辆大巴车开进位于广州科学城附近的一所中学。一批批满脸稚气的中学生,拉着行李走进中学。中学门口,早有工作人员迎候,协助学生们办理报到、入住、领取餐券等手续。不少学生家长陪同前来,但是,办完手续后,家长被告知“可以离开了”。工作人员的解释是,这里是封闭式管理,谢绝家长陪住。

据介绍,这个校区的教学、食宿均安排在学校之内。根据不同的名额,每名学生的学费分为2600元和3500元两种,另外还需自理交通费用。“三名学生住一个宿舍。”工作人员说。

从早八点学到晚九点

后排学生只能坐二楼

昨天是培训课程开课第一天。位于科学城的营区占用一间大报告厅作为教室,学生们被分成了多个座位区,各对应一个显示屏。个中原因,在于“教室”里的学生太多,在最后一排已经几乎看不见老师,只能通过听声音、看投影“直播”来听老师讲题。到下午4点,后方座位区已经有学生难以专注听课,趴到了桌子上。

记者探访两个课堂,感受到了学生们高强度的学习节奏。现场公布的一份冬令营时间安排表显示,学生们每天起床的时间为6点40至7点,之后有40分钟的时间早餐。8点开始上课,一直到11点半。中午学生有两个半小时的中餐和午休,之后又是三个半小时的上课。

入夜后,学生们也不能歇着。记者在广州二中看到,晚上7点刚过,吃过晚餐的学生陆陆续续都前往体育馆的考试点开始试机。工作人员透露,从晚上7点到9点是学生试机、交流的时间。晚上10点半查寝,不统一熄灯。

2.jpg

拼竞赛争取进名校

任课教师多是国际金牌选手

小象是西南地区一所中学的高三学生。这次,他是由学校老师带队,与同学们一起进粤参加信息竞赛的培训。小象很明确地告诉记者,上辅导班就是为了拼竞赛,获得进名校的“敲门砖”。“如果能进候选队,那么,AKIOI的概率就很大。国际学科竞赛夺金牌,就可以天下第一了。”他说。

小象坦言,在老家学校,大家主要的任务都在应对高考。老师讲课、考试都是围绕高考进行,竞赛生“吃不饱”。因为没有专门的竞赛指导教师,训练主要是靠从国外的网站找习题。“来广州学,确实收获很大,这边考的好几个不同的题型 ,一下子把我送进了候选队。”

培训机构的一位工作人员告诉记者,如果只凭高中课堂学习的知识积累,去拼名校的自主招生,没有多大意义。因此,必须走一轮竞赛,材料才过硬。他透露,竞赛培训的主讲老师大部分是当年竞赛的金牌选手,培训中会有竞赛例题的讲解,还有模拟竞赛考试,学生可以充分熟悉考试的流程。

多所高校招办答复

自招认定与竞赛集训无关

今年1月,教育部印发了《关于做好2019年高校自主招生工作的通知》,从招生政策、招生程序、加强监管等方面提出规范高校自主招生的“十严格”要求。“十严格”中明确高校不得简单以论文、专利、中介机构举办的竞赛活动等作为报考条件和初审通过依据。此外,要严格审核申请材料,高校成立专门自主招生审核专家组,采用多名专家“背靠背”分别独立审核、复核等方式,对考生提交的证明材料进行全覆盖核查。

昨晚,本市多所“双一流”高校的招办负责人向记者表示,绝大多数考生最终能否获得自主招生的认定,与是否参加过竞赛、拿过奖没有必然联系,与竞赛培训更是无关。“我们严格遵守教育部相关规定,学生申请自主招生可以根据自己的兴趣和特长提交相关材料,竞赛成绩只是其中很小一部分。此外学生通过材料初审后,也必须要参加学校组织的自主招生初试和复试,通过并完成公示后才能获得认定。这些流程都与校外培训机构无关,希望学生能展现真实的才华。”一所“双一流”大学招办主任说道。

来源:广州法报 记者 张宝华
流程编辑:fa114514

Codeforces Round #574 (Div. 2)

A. Drinks Choosing 2s/256MB

题意

给定a[i],每次选出一个x,在集合中删去两个和x相等的数,最多做n/2上取整次,问最多划掉多少个。

#include <iostream>
 
const int N = 1001;
 
int cnt[N];
 
int main () {
    register int i, j;
    int n, m, x;
 
    std::cin >> n >> m;
    for (i = 1; i <= n; ++ i) {
        std::cin >> x;
        ++ cnt[x];
    }
 
    int ans = 0;
    for (i = 1; i <= m; ++ i) {
        ans += (cnt[i] % 2);
    }
 
    std::cout << n - ans / 2;
 
    return 0;
}

B. Sport Mafia 2s/256MB

题意

有一个盒子,每次操作可以放入或吃掉盒子里若干个糖果(第一次操作必须放入一个糖果)。给定操作数和盒子里最终剩余的糖果,求吃掉了多少个糖果。

解法

推一元二次方程的求根公式

#include <iostream>
#include <cmath>
 
typedef long long ll;
 
int main () {
    ll n, k, m, d;
 
    std::cin >> n >> k;
    m = (n + k) * 2;
    d = std::round(std::sqrt(9 + 4 * m));
    std::cout << n - (d  - 3) / 2 << "\n";
 
    return false; 
}

C. Basketball Exercise

题意

给2*n个数组,选取若干上下左右不相邻的数,使得和最大,求这个和

解法

简单DP,令fi分别为第i列中,不取,取第一个数,取第二个数三种情况的累加和

#include <iostream>
 
typedef long long ll;
const int N = 1e5+1;
 
ll a[N][3], f[N][3];
 
inline ll max(ll x, ll y) {
    return x > y ? x : y;
}
 
int main () {
    register int i, j;
    ll n;
 
    std::cin >> n;
    for (i = 1; i <= n; ++ i) std::cin >> a[i][0];
    for (i = 1; i <= n; ++ i) std::cin >> a[i][1];
 
    for (i = 1; i <= n; ++ i) {
        f[i][0] = max(f[i - 1][1], f[i - 1][2]) + a[i][0];
        f[i][1] = max(f[i - 1][0], f[i - 1][2]) + a[i][1];
        f[i][2] = max(f[i - 1][0], max(f[i - 1][1], f[i - 1][2]));
    }
 
    std::cout << max(f[n][0], max(f[n][1], f[n][2]));
 
    return 0;
}

D1. Submarine in the Rybinsk Sea (easy edition) &

D2. Submarine in the Rybinsk Sea (hard edition)