CSP 第二轮比赛注意事项
多测不清空,爆零两行泪!
非学术类
freopen
文件输入输出- 时间安排需要合理
易错点
m
和n
不要写反- 对于难题先思考暴力分数再尝试正解
- 文件夹显示文件类型(扩展名)
- 编译器编译选项:
-std=c++14
,不能编译的话使用-std=c++11
- 题目看不懂时举例帮助理解
- 空间限制很小但又必须开很大的
bool
数组,就用bitset
代替 - 数组存 1 ∼ N 1 \sim N 1∼N 的质数,开 N 10 \cfrac{N}{10} 10N 大小就可以
- dfs 结束条件后写
return
语句 - 二进制枚举使用状态压缩
- 输入输出使用
cin
cout
,加上ios::sync_with_stdio(false)
,cin.tie(0)
,cout.tie(0)
- 用 for range 更新变量值时需要加上引用
&
代码调试类
- 学会调试与对拍(期望正解 & 暴力)
- 在草稿纸上记录重要思路
- 良好的代码习惯:注释、变量名有意义、不使用
#define
- 平时练习时尝试独立调试
综合
- 遇到不太会的题时先去确认一下有没有读错题。
- 遇到太会的题时先去确认一下有没有读错题。
- 感觉好像会了的时候不要立刻开始写代码,重新理一下思路。
- 写代码之前仔细地确认一下每一步转化和结论是否正确。
- 调了很久都调不出来的时候再确认一下思路是否有问题,以及评估一下需要修改的幅度。
- 感觉 hack 掉自己看起来很正确的想法的时候想一想是否是 hack 错了。
- 任何想法都不要急着否定,如果时间充裕一定要去写一写试试。
- 不要打错板子。
- 不要以为自己打的板子一定是对的。
- 过样例和通过编译没什么两样。
- 一定要测极限数据。
- 一定要检查数组大小,INF 的大小。
- 栈为空时查询栈顶会 RE。