【置顶】警示后人——OI 赛制防丢分注意事项
hard_shuati · · 个人记录
警示后人
OI 赛制防丢分注意事项
都是我和前人问走过的弯路,您可别走了,走了就会④。
一、场内场外——基础状态问题
1. 试机注意事项(试机前必看)
- 好好地检查电脑,特别是要检查
dev-c++、鼠标左右键、键盘、分辨率等等; - 用
dev-c++或code::blocks或VS Code打一个带文件 IO 的A+B并进行命令行调试,检查能否正常打代码和调试,出了问题一定要报备; - 尝试
__int128等高版本或 Linux 特有的feautre是否可正常编译运行,再次强调,带文件 IO 和命令行检验; - 检查此电脑、PDF 打开器能否正常运行,各个功能是否正常,有 Linux 的熟悉 Linux;
- 检查文件资源管理器的每个功能,尤其要打开显示文件扩展名,不然您如果连续出现两个
.cpp咋④的都不知道; - 熟悉考场地点,确保能尽快到达;
- 熟悉考试路径,以防人多迷路。
2. 技术类错误
- 不要存错盘或文件夹;
- 不要重命名错文件夹;
- 比赛开始前的密码尽量一次输对。
3. 态级错误(心态、态度、状态)
3.1 心态
考试时心态基本可决定
考前睡个好觉其实睡得不好也行,只下午考的话只要午觉睡好就行(其实睡不好也行);- 不要打在考前学不会的部分,不然心态易崩;
- 不要在考场上乱
yy算法,不然多数情况下会浪费大量时间且会崩心态,但急中生智除外; - 考前您可以通过告诉自己“我能行”的方式调整心态,别看不起,它很有用。相信自己,您能行。
3.2 态度
考试要有个态度!!!不要太放纵了!!!下面这几条您一定要遵守!!!
- 请您积极践行“以辛勤劳动为荣,以好逸恶劳为耻;以遵纪守法为荣,以违法乱纪为耻 ”的社会主义荣辱观,以及“敬业、诚信”的社会主义核心价值观,这里提醒一下某只鸟;
- 在做题的时候,如果您遇见不会做题光搞心态的
870 元体验卡歌(这里指的是CSP-S花钱光体验场地不打比赛的人,引申为不好好打比赛的人)、AK佬(有些是有些不是)或🍬🍡人(这种人🍬得没边,有可能是会打的部分分都打完了,最后1\sim1.5h 多见)少管,请把您的注意力放在题上,如果让他们引火上您的身,得不偿失,而且伤害的是您不是他们,正确做法是置若罔闻,一定会有人来专门处理这种人的(让牠们叫去吧); - 请您千万不要皖尤溪,不然等着吃🛀💊吧(除非您把能打的部分分打完并保证无误);
- 蒙脱石散、速效救心丸、创可贴、卫生纸之类的东西需要的时候也要带,不然真出事了谁都救不了您;
- 就算您
AK了也别大声喧哗,认真检查; - 设考试总时间为
T 分钟,一旦到最后max(25, 10\%T) 分钟,不管您有没有打完,有没有AK,好好地检查每道题,典型教训:CSP-J 2024(笔者),CSP-S 2025(笔者、hhr); - 虽然我们都讲“舍生取义”,但考场上宁愿苟且偷分,不要舍分取义,部分分必须好好地打,《骗分导论》最好看一遍。
3.3 状态
状态要调整好,否则考试成绩会跑得影子都没有,让您哭都来不及。
- 考前睡个好觉;
- 考前不要让大脑太过于运转或太过于放松;
- 不要把考试看得太轻,也不要把考试看得太重要,这不是您的终点(除非您高二且这是 OI 系列考试);
- 考试时可以带零食和水,但请您不要去太多卫生间,也不要吃海鲜、把子肉等“垃圾”食品,拉肚子后果自负;
- 考前可以适当放松,但是考前最后
1h 和两次考试之间建议不要放松; - 考前可以码爽文或者是码 OI 回忆录来调整状态;
- 考前要看一遍其他人写的总结,这样能提升您的状态,我帮您亲测了,很有效。
二、基础为重——入门级问题
1. 入门级代码(初级语法)错误(部分附解决方法)
- 不要注释或写错
freopen; - 不要写错文件名;
- 不要用关键字当变量(笔者栽在了
hash上,cwz 栽在了kill上); - 不要打错大括号,最好每打一行就
F9编译检查一次(不瞒您说,笔者很多次犯这个问题); - 数据范围、模数等基本数据不要看错,分类讨论时注意是否遗漏,输入输出的格式要特别谨慎;
- 一定要写
return 0; - 尽可能杜绝
#define int long long; - 定义函数时注意函数类型;
- 不要除以
0 ,最好除以变量的时候作除以0 预判; - 数组不要开小,建议多开
5 ; - 数组不要开大,
MLE会直接0 分,真要检查总空间可以定义两个bool然后cerr这俩间的字节数判断; - 注意字符串类型的读入中间可能会暗藏空格,
scanf和getchar读字符都可能会读到空格; - 注意如果输入多可以写快读,输出多可以写快写;
- 注意判断边界(
0 和n ); - 不要漏写头文件,再次建议:最好每打一行就
F9编译检查一次,也不要用万能头,否则可能引发不必要的错误; - 用完的断点调错一定要注释,最好删掉;
- 当输入数据、坐标等为负数时,记得加上一个偏移值防止越界
RE(RE这个测试点甚至这档部分分就白打了); - 不要定义野指针;
- 尽量不要关同步流(虽然同步流省时间,且多数情况下都是正确的,但是如果使用
cin和cout以外的输入输出方式会读错数据),解决办法回看第11 条; - 在使用
scanf时输入数值、字符或数组元素时由于粗心没加&,会RE且极难调出(因为scanf是根据地址读入的数据); - 记得每道题的每个样例都测试到,不要掉以轻心(笔者在 CSP-S 2025 先替您试了试水,
180\to 100,1=\to 2=)。
2. 高级语法(基础级代码细节、基础级算法)错误
- 出现任何环问题,最好先翻倍区间;
- 只要不是主函数,统统用的是栈空间,数据太大会
RE; - 树上
dfs的时候别忘了儿子不能更新父亲的fa、dep、dfn、etc.; bfs时不要忘记给起点入队;- 尽可能地不用
map、set、list,除非必须(它仨分别的上位替代:unordered_map、multiset、vector或手写链表); - 函数内部的空间限制为
10^5 ,所以数组尽量不要开在函数内部(小心RE); - 高精度啊,那注意事项很多,比如说要注意方向啊、顺序啊、压位啊、重制运算符别写错啊等等;
- 贪心一定要先好好证明,至少要列几组样例去测测,还有再次提醒考场上宁愿苟且偷分,不要舍分取义,所以大胆猜测,小心求证,一步都不能少;
- 二分先看清边界,可以多测几次,也可以在最后转暴力(但小心常数问题);
- 排序的时候优先考虑
std::sort,功能较强大,实现极易,实在不行再用手写排序,用的时候也尽量写归并、基数之类的快速的排序; - 搜索这一块,深搜注意栈空间问题,能剪的枝要剪掉;广搜适合在树的高度很高但深度不大时使用,也可以用来遍历图,时间复杂度
\Theta(n+m) ; - 动态规划注意能压维的压维,赛场上如果
MLE那可是零分,要按照三步走:状态、转移、初始化; - 待补
真到考场上,您要这样做:第一件事是在 C 盘和 D 盘开你的主文件夹、子文件夹,然后开 cpp, 305 分(一等,第 12 名)了,还能拉那些并列第 11 名的分。。。。。。
以及一定要时刻使用 gcc 编译!!!
最后祝各位:
- 您往昔的信奥之路,山花烂漫,收获硕丰;
- 您将启的信奥比赛,一发入魂,心想事成;
- 您未来的人生征途,披荆斩棘,走向巅峰!