只写那种容易注意不到的,已经强调很多遍的就不写了。
比赛前
- 尽量早到,千万不要迟到.
- 千万不要带着负面的情绪考,不然肯定爆0.
- 静心,不建议面基.
- 一定要放松,
考完试再紧张. - 听《膜你抄》等歌曲
比赛中
关于编译错误
- 禁止使用双下划线函数,比如__gcd
- 变量名取得中文一点,比如把pipe改成guanzi(特别注意不要用size, next, x0, x1, y0, y1, left, right, max, min, time,不然会死得很惨)
- 考试最后阶段不要乱改代码了,改到最后CE了惨不惨
- 傻了,不运行就提交了
- 忘记放NOI Linux下运行了
关于WA
- 数组开小,特别是并没有小多少的那种(比如int a[200],然后访问了a[200]),出现神奇的东西(UB);
- 一定要对拍,特别是那种结论题(贪心题)、数据结构题与 d p dp dp题,数据要做得强一点。
- 把判断是哪个部分分的函数写错了,甚至根本没写
- 多测不清空,爆0两行泪
- 没有特判,特别是树/图上只有1-2个节点的时候
- 溢出了……你取模了吗?你写高精了吗?
- 一个耻辱的原因——混用快读与ios优化
syn优化
关于TLE/MLE/RE
RE:
- 你数组开小了,请开大
- 你的模数不会是0吧……
MLE:
特别恐怖,一个点MLE就整个判
0
0
0分了
-
数组开太大了……
注意,int只能开到 8 × 1 0 7 8×10^7 8×107, long long只能开到 4 × 1 0 7 4×10^7 4×107 -
d f s dfs dfs时:
void dfs(int now,int fath)
{
int a[200005];
for (int i=head[now];i;i=e[i].next)
{
if (e[i].to!=fath) dfs(e[i].to,now);
}
}
当这棵树是一条链的时候,就MLE了……
TLE:
- 请认准你程序的时间复杂度
- 禁止用memset,这个函数永远别用,坑死人
- 你被卡常了,优化一下
关于非传统题
- 提交答案题不是写代码提交的
- 交互题别玩了fflush(stdout);
关于文件操作/文件名
- 文件操作要仔细检查!
- 文件名不要把你的准考证号写错了,
到时候你AK了变成别人AK了…… - 上传失败,请在提交代码后与监考老师确认一下你提交的字节数。
关于策略
这是duyi巨佬的考场策略,原链接在这
我的考场策略是(CSP-S):
先把所有题目看一遍。
①T1切掉,或者想一会儿,反正应该能做出来,限制在
30
30
30分钟内
②T2猛刚,花
1.5
h
1.5h
1.5h左右,高分或保证AC后驱看T3
③T3猛刚,话
1.5
h
1.5h
1.5h左右,高分或保证AC后去看T4
④T4花
15
−
20
15-20
15−20分钟打个暴力;
⑤检查一些东西,比如文件操作、文件名、字节数等信息;
⑥交卷后与监考老师确认,并迅速离开考场,回去搞文化课
特别注意,我这里的 T 1 , T 2 , T 3 , T 4 T1, T2, T3, T4 T1,T2,T3,T4对应着试卷中四种不同的难度,而不是顺序排列的 A , B , C , D A,B,C,D A,B,C,D题。
关于思路
- 一定要手玩样例!
- 不会做了考虑二分
- 熟练运用根号分治
- 一定要看数据范围,T1就不用看部分分了,T2, T3建议好好看一下部分分
①什么? n ≤ 100 , t ≤ 1 0 18 n≤100, t≤10^{18} n≤100,t≤1018? 这是矩乘吧!
②什么? n ≤ 1 0 4 n≤10^4 n≤104?这往往是一道卡常题或大数据结构题。
…… - 一道题目至少要想 30 30 30分钟,你必须要认为这题很简单,不然你根本不敢想。
- 数学归纳法、找规律