考了这么多次试
一直没总结
该是时候了
蒟蒻~
呵呵
'=' '!=' '=='
- 先理清逻辑再写代码
- !!审题!!
- 每一个函数界限分明,该做什么做什么
- 注意求最大值时,存不存在负值
- 注意求最小值时,是否已预处理极大值
- 使用
mid=((l+r)>>1);
时注意l
和r
是否会爆数据范围 - 递归边界是否明确
- 占用空间=数组空间+
stl
空间,系统栈空间需考虑 - 看题前,先审题中要求的空间限制和时间限制,预估算法
- 变量名要明确,不要搞混
- 能不递归尽量不递归
- 能不用
stl
尽量不用stl
,手写往往更快 - 注意提高手速
if
条件要枚举全部情况- 不要用奇怪的函数
stl
极慢- 题答就算把样例读入输出回去也要写
- 先写暴力,再写正解
- 对拍数据范围不要错
- 排序函数逻辑不能写反
- 多组数据要记得更新
- 手写栈记得更新栈顶
- 循环变量的更改不要改错变量
- 名称要有意义
- 初始值必须写对
- 网络流反向边流量为零
- bfs时要判重
- 浮点数取整时注意是向上取整,向下取整还是四舍五入
- 并查集确定边界,否则会死循环
- 重新初始化数组时,只需初始化用过的部分
- 迭代器不是万能的,不能乱用
- 看清楚如何写暴力,对拍暴力,保证自己不翻车
- 头晕脑胀不适合写代码
- 滚动数组时,如果状态是+=更新,需要将原状态清零
- 无限循环的递归…
- 二分要使用l+(r-l)/2的形式,否则负数会炸
- 浮点数没有结合律,涉及到浮点数就要全都用浮点数计算
差不多就是这样了…