部分来自 OI-Wiki。
想到哪写到哪。
会导致 WA
- “==” 写成 “=“
for
语句变量写错scanf
、printf
格式符不匹配- 多测不清空
- 不开
long long
见祖宗 scanf("%c", ...)
或getchar()
到了空白字符/换行符
建议用ch = getchar(); while(!<ch is valid>) { ch = getchar(); }
- 程序结束一定要
printf("...\n");
或者cout << endl;
再fclose
防止输出缓存区不写入文件 - 忘取模
- 交错题 / 放错选手文件夹
- 解除流绑定后混用
scanf
/cin
、printf
/cout
- 多输出空行
会导致 TLE
- 递归栈死里面了
- 程序持续等待输入
- 记忆化搜索没记忆上
for
循环写反方向- 交互题不刷新流缓存
fflush(stdin); fflush(stdout);
会导致 RE
- 非
void
函数没有返回值(开 O2) scanf
变量不取地址- 图双向边不开双倍数组
会导致 CE
- 与系统函数 / 变量重名
遇见的有size
、data
、lock
…… - 不注意 Windows 与 Linux 的差异
- 用
#define
设常量用科学计数法表示
如#define N 1e5+5
- 少
#include
头文件 - 数组开的太大
- 将
int
重定向为long long
后 main 函数没改成signed
- 用
INT_MAX
、LLONG_MAX
没#include <limits.h>
参考 数值极限 - cppreference.com min
、max
函数两个参数类型不同