写给OIER入门选手的话

· · 个人记录

本文针对sser,外校学生请到隔壁参观

看完记得点赞!

一、关于刷题

1、关于网站

初学者推荐在ssoj上刷题,至少AC200+。luogu上也有好题,不过面对初学者的题要么是搞怪的,要么就是过水的。量力而为。至于国外网站,这里推荐 CF 1000 分左右以及 atcoder 的ABC的前三题。时间和精力允许的情况下,可以打比赛。推荐 Div. 3。

国内网址推荐 这个

2、关于时间

入门时候,题都比较简单,每一道题平均 15 分钟不到。因此我认为每天平均1小时到 1.5 小时足矣。刷到后面题难了,1.5 小时左右为宜。时间少手还没热就结束了,时间多了容易失去对编程的兴趣。总之自己把握,千万不要让编程成为你的负担。

3、 关于心态

刷题,不是为了追求 ssoj 上那个可怜的排名,因此千万不要看题解。不懂可以问老师,老师可以很好地引导你去思考,而不是像大多数题解一样毫无营养。心态是重要的,有一个好的心态是前提。

4、 关于选题

首先是选题:推荐按专题刷。综合题需要在考试一个月前开始准备。一个专题,先刷模板,在刷模板改编,最后在选定算法标签后随机跳题。

5、关于coding(敲黑板!)

1)请尽量使用scanf代替cin,printf代替cout,数据大于10^{6}要使用读入优化

int read(){
    char ch; int x=0, f=1;
    while(!isdigit(ch)){ ch=getchar(); if(ch=='-') f=-1;}
    while(isdigit(ch)) x=(x<<3)+(x<<1)+(ch^48), ch=getchar();
    return x*f;
}

2)代码风格各有不同,但缩进必须按规范来

3)变量名不要长,一类变量要尽早固定一个名字,不要经常变动

4)不要压行。但一些通常或惯用函数连在一起的语句可以写在同一行:

int a=q.top(); q.pop();
int find(int x) {
    return x==f[x]?x:(f[x]=find(f[x]));
}

5)将代码分块,不同功能块之间加空行,或把它们封装进函数/结构体,不要所有东西都堆在主函数里。

二、关于上课

1、数量

对于初一初二的同学,在学校集训的时间大约只有周三下午和周六上下午,如果你希望通过信息报送2+4,这点时间是完全不够的,你会被同学吊打。对于课外编程班,这里不方便宣传。但有那种“少儿”“大数据”“区块链”“积木”“机器人”之类的词语的班就不要报的。推荐那种带 “NOIP” “CSP”字眼的班。进度推荐1年左右从入门学到动态规划的。

2、难度

无论是课内还是课外,请在报班之前询问进度。若有试听尽量参加。

3、专注

上课打游戏大概率不会被老师发现,但为了个人的发展 和对老师的可怜 请不要那么做。一来被发现了很没有面子,而来时间本来就很珍贵,专时专用,效率更高。这个之后会再讲。

三、态度

1、与文化课的平衡

首先说一句最重要的,文化课一定不能丢。但也不用过于纠结排名,不要说跌了几名就发愤图强,不刷信息题了。以我个人观点,年级40名以内都算可以接受,跌出去就真的要小心了。普及组考试前不建议听课,若你拿到了2+4的名额,那么你在提高组考试前可以考虑停一个星期的课。

2、定位

不是不能把编程当做兴趣,只是当做兴趣难以在题目变难时鞭策自己继续学习。因此这里推荐即使你真的爱好,也好有目标,功利未必是坏事。当你遇到瓶颈时,这个目标就是你前进的动力。目标包括但不限于:

四、目标

1、“2+4”?

作为一个过来人,我并没有在2+4时经历大风大浪,因为我普及前10保送了。但这个很看运气,即使你有这样的能力也不能打包票。以后的政策可能会变,但万变不离其中。刷好题,稳在同年级的前2名,考试时放松心态,问题不大。

2、自招?

这一点,我也在路上,经验尚不能传授。但我坚信,一分耕耘一分收获,十分耕耘两分收获。收益未必与付出成正比,但付出了总比没付出好。这里鸡汤讲多了,下面讲些实际的东西。
2020.2 更新:自招这条路可能没了,若是学信息竞赛只为了此建议退出。毕竟强基计划是一个好选择。

五、考场发挥

这是个千古难题。如何不失手,谁也说不准。但有些方法可以尽量避免失手:

1、考试时按自己习惯、舒服的坐姿,用平常心对待。

2、带巧克力。它不仅能补充能量,还能在没有思路时保持思考。同理,这里还推荐葡萄适(港版)。

3、想好再写,避免整篇代码删掉重新,既浪费时间,又影响心态。

4、考试前洗把脸,喝口水,上个厕所。告诉自己,“你一定行!”

5、时间分配

以提高组为例:
T1 40'
T2 60'
T3 50'
对拍+升级骗分+检查文件流 60'

6、考场代码书写

不要用这些变量名 https://www.luogu.org/discuss/show/166156

return 0 一定要写

freopen 仔细检查

#include<bits/stdc++.h> 可以用

c++11 的特性别用

六、关于游戏

——游戏不一定是害人的
——不要边学边玩游戏
——游戏定时定量
——最好说服家长,在他们的监督下玩
——周一到周四绝对不能玩游戏 至于量,每周一个半小时以下为宜

七、尾声

文章可能啰嗦了。这些内容可能你现在看起来不值一提,甚至表示反对。但这是学长在现阶段想和你们说的话。沉下心,努力学习,总有一天你能超越我!