比赛重点汇总
He_Ren
·
·
个人记录
写完代码要检查的东西
- 数组越界
- 多组数据,能清零的一定要清零
- 二分上界在时间允许的情况下开得足够大
- 在不MLE的情况下,能开
long long就开
- 检查所有不正常退出程序的地方
long long的左右移是否用1ll
- 双哈希时,模数1和模数2有没有写混
- 注意下标对应的含义,不要将下标搞混
- 边界情况
- 不要轻易改变下标习惯,混淆从 0 开始和从 1 开始
- 边界要检查,特别是 “正整数”和“非负整数”,正负的问题,下界是 1 还是 0,10^9 还是 2\times10^9,边界会不会因为加减乘除而超爆
int 或 long long,等。
- SPFA手写队列的大小应该远大于节点数。
- 访问边的次数较多时,应该使用
vector 存图。
代码经验
- 库函数要多了解一下,因为这个失分就太可惜了
- bool数组也不要开到1e9
- 左右移long long的时候一定要用1ll
- 常量不要用函数定义
- 题目做不出来时,不妨认真多读几遍题
- inf不要设太大
- 关于浮点数:
- 有浮点数时,long double可以减轻卡精度
- 有浮点数时,用
using namespace std有加成
- 输入整数给浮点数时,输入写快读有加成
- 判断一个浮点数数是不是整数,一定要先四舍五入,而且有负数时不能直接 +0.5,推荐使用
round函数
- 要重视每一个小思路,最好想到的都写出来
国内比赛流程(严格遵守)
- 不要对题目算法、难度有 任何 预设
- 10min读题
- 初步思考题目
- 马上有思路的题先写
- 写暴力
- 优化暴力
- 想正解
- 对拍
- 最后至少 10min 检查,建议留 15min,检查内容包括但不限于:
- 文件读写
- 数据范围
- 其他细节(具体可见 https://www.luogu.com.cn/blog/He-Ren/contest-record-list)
- 观察数据范围,测试所有可能的极限数据,包括但不限于所有变量的上下界
- 添加做题中想到但没写上的一些细小的点
困难题目
- C. Nearest vectors
- F. Cut Length
- D. Area of Two Circles' Intersection
- E. Lomsat gelral