赛前提示

By ProtectEMmm;2024-10-15。

编译相关

  1. 不要包含头文件 <Windows.h>
  2. struct 最后没加分号。
  3. set,map,priority_queue 套结构体但是没有重载小于号。
  4. int mian()
  5. 使用了一个没声明的变量。
  6. 括号没匹配。
  7. 结构体不要用默认初始化,而是使用构造函数去初始化。
  8. Windows 下把万能头打成了 <bits\stdc++.h>,但能过编。

文件读写相关

  1. 没写文件读写。
  2. 文件名写错了。
  3. 没有清空缓冲区然后 fclose 了,导致没有输出。
  4. 文件名后面不要加空格,会爆零。
  5. 有人把输入输出写在了 freopen 前。

读入输出相关

  1. cerr 没删虽然没 WA 但是导致 TLE
  2. 没关闭同步流,使用 cin,cout 导致 TLE
  3. 关闭同步流后, cin,coutscanf,printf 不能混用。
  4. 关闭同步流后,没有 endl 清空缓冲区然后 fclose 了,导致没有输出。
  5. 关闭同步流后,没有 #define endl '\n' 导致反复清空缓冲区最后 TLE
  6. mmap 快读在 linux 环境下编译可能存在一些问题,但主流 oj 都测不出来这个问题。
  7. scanf 没有加 &,读字符串的时候加入了 &
  8. printf 输出 double 的时候用 %f 而不是 %lf
  9. 如果只会 getchar() 快读,那就老老实实用关流后的 <iostream>

命名相关

  1. 使用了 y1 这个变量名然后暴毙。
  2. y0,y1,yn,j0,j1,jn 都不能当变量名使用。
  3. tm 不能当变量名。
  4. 使用 next,time,case,array 等单词作为变量名。
  5. 没有发现自己相同的变量名在全局和局部都开了一次。

写顺手了

  1. 写顺手了 for(int i=1;i<=n;++i)for(int j=1;j<=n;++i)
  2. 写顺手了 for(int i=n;i>=1;++i)
  3. 题目先读入 m,n,但是写顺手了 cin>>n>>m;
  4. 写了 if (...); 后顺手加了个分号。

#define int long long 相关

  1. 使用了 #define int long long 导致 TLE 或者 MLE 或者 RE
  2. 使用了 #define int long long 后没有改为 signed main()
  3. 使用了 #define int long longscanf 用的还是 %d
  4. 不要使用 #define int long long

习惯不好相关

  1. if 里赋值号和等于号不分。
  2. 一个局部变量没初始化就使用。
  3. 不开 long long 见祖宗。
  4. 运算符优先级记不清还不打括号 1<<2+1
  5. 多测没有清空。
  6. 使用 STL 容器没有先判空就 pop 或者 top
  7. 发生了数组越界导致 RE,甚至他的下标是负数!
  8. 禁止把大数组开在局部里。
  9. 调式信息没删干净。
  10. 没有想清楚下标从 0 开始还是从 1 开始。
  11. 一个函数至少要有一个紧挨着右括号的 return
  12. linux 系统下,main 函数没有 return 0 导致 RE。(存疑,现在似乎不会出问题了,但最好都加上)。
  13. 递归没写递归边界导致死循环。
  14. 背包问题正序倒序枚举搞混了。
  15. double(int/int) 算出来还是个整数。
  16. 把题给读错了,等发现的时候已经晚了。
  17. 没注意题目要求 double 保留几位小数。
  18. 写高精乘法,下标不从 0 开始非要从 1 开始。
  19. 不要卡着内存上限开数组,你的代码中会有其他的内存开销。
  20. 多测不要用 memset 清空数组。
  21. 老老实实把数据读入完再干别的事情,不然有可能发生玄学情况。
  22. 记得取模。
  23. 不要用 register
  24. #define N 100000+5(后面有 int a[N*2])。
  25. 结构体内直接赋值,开数组后容易编译超时或编译文件过大。
  26. 数组使用{}初始化,容易编译超时或编译文件过大。

坑点提示

  1. lcm 要先除再乘,不然可能炸精度。
  2. 使用 &&,|| 有可能触发短路运算,如果把赋值放里面就会被短路掉。
  3. 禁止使用 gets
  4. 判断一个数的奇偶不要用 if(x%2==1),因为 x 有可能是负数,模完是 \(-1\)
  5. 用位运算判断偶数不要写 if(x&1==0),因为会先算 1==0
  6. memset 使用了 0X7F 后进行了加法运算导致溢出。
  7. \(2\)\(60\) 次方是 1ll << 60,不是 1<<60
  8. mid=(l+r)/2 是错误的。
  9. getchar 有可能会读入换行符。
  10. sqrtlong long 范围内有可能产生精度误差。
  11. 注意题目的 YES 还是 Yes 还是 yes 还是 YE5
  12. 注意 absfabs 的区别。
  13. 我有一次总是莫名其妙的 WA,直到我发现我把 O 打成了 0,所以同理还有 Il1
  14. 对拍不要开满栈,DFS 有可能陷入死循环把计算机资源占满导致死机。
  15. dev 会头文件补全,有人蓝桥杯写 bits/stdc++.h. 编译通过了,但是爆零。
  16. .size()是 unsigned 类型,和 -1 比较的时候会变成无限大。

STL相关坑点

  1. 开了一堆 deque 导致原地 MLE+TLE
  2. queue,stack 默认底层容器也是 deque,所以也会导致 MLE+TLE
  3. 使用 map 的时候,下标元素会自动 insert 进平衡树里,导致最后的 size 不一定是有效元素的个数。
  4. 没有使用 set.lower_bound 而是 lower_bound(set.begin(),set.end()) 导致 TLE
  5. 使用 multiset 然后 erase 了一个值导致全被删了。
  6. 以为 priority_queue 是小根堆。
  7. 使用 STL 容器删除插入导致迭代器失效。
  8. size() 是一个无符号类型的返回值,有可能会导致 CE,另外强转前别拿这个做减法。

线段树相关

  1. 线段树开 \(4\) 倍空间。
  2. lazy 标记没有清空。
  3. maintain 后没有 pushup
  4. 忘了 pushdown
  5. mid=(l+r)/2 是错误的。
  6. 查询修改之类的,注意判一下 l>r 的情况。

赛场上一些神秘的事情

  1. 使用命令行时,编译命令打成了 g++ x.cpp -o x.cpp,把代码给覆盖了。
  2. 我那年 NOI 出了一个事情,有人比赛结束了,但是代码没有关,然后不小心压到了键盘,并且自动保存了。
  3. 管好你的脚,别闲的没事踢点东西。
  4. 水撒键盘上了,所以应该把水放地上。
  5. 没有保存代码,但是电脑断电了。
  6. 不要携带手机,手表等设备,放包里也不行(IOI 2024 惨案)。
  7. 禁止赛后使用 U 盘拷贝代码。
  8. 没有按照要求建立目录和命名。

题目中的一些 corner

  1. 00。遇到相关题目一定要思考一下有没有这种可能性。
  2. 没有特判 \(n=0\)\(n=1\) 之类的 corner 数据。
  3. 有关质数的题没考虑到 \(2\) 是唯一的一个偶数质数。
  4. 有关图的题,题目到底有没有说清楚有没有自环和重边。

心态相关

赛前

  1. 不用紧张不用害怕。
  2. 你的训练是不会背叛你的。
  3. 不要把比赛看的太重。
  4. 你的对手都是一群乌合之众。

赛中

  1. 你进入考场会看到一个文件夹,非常诱人,你很想点开他。但你先别点开他,你先复制备份一份。防止你把题目数据破坏。
  2. 题难,大家都难。
  3. 题简单,你失误了,就完了,所以要对拍。
  4. 不要看一眼四个题发现都不会,心态就爆炸了。
  5. 不要头铁在一道题上。
  6. 有些同学信心不足害怕失败,故意赛场上当铁头娃,这样为自己没拿到预期奖项创造理由。
  7. 暴力打满就是省一。
  8. 一道题怎么都没思路,你先确定一下是不是题读错了,或者看漏条件了。
  9. 如果代码怎么都调不出来,那就删了重写一遍。
  10. 比赛结束前 10 分钟,不要继续写代码了。别信自己能绝境反杀。你更应该检查一下你的文件读写,再编译一遍,测试一下确保能过大样例。

赛后

  1. 考好了可以开心可以庆祝但不要飘,人外有人天外有天,甚至未来的自己都会嘲笑现在的自己。
  2. 要承认天赋是存在的。
  3. 一般人的努力还达不到被天赋限制住的程度。
  4. 你努力了,别人也在努力。
  5. 不用羡慕别人。
  6. 机会总会有,但你得把握住。
  7. 我高中老师说过的一句话,现在送给同学们:“别人考好了说自己只是运气好,你们就真的以为是人家运气好,其实是别人会,考试正好出了,别人拿到了分,你们一个个还真以为别人是因为运气才考得好”。
  8. 一次比赛说明不了什么,你的未来也不会被一次比赛限制住。
posted @ 2025-07-17 12:55  ProtectEMmm  阅读(61)  评论(0)    收藏  举报