隐形错误汇总
多步操作: 每步的操作次数多与少隐形
关于多步骤操作,计算时间复杂度得出至少构造O(1),但隐性的是存在步骤1多于步骤2,将O(n)操作迁移到步骤2则可过
int溢出: 1.0*int(/除法)类型转换,但原类型int范围远小于double,导致int范围不够大小溢出
善用乘法而不是除法:除法存在取整问题,且乘法的速度更快
关于数组类型的存储空间:应当为类似大O计算法:即题目N大小+M操作都为存储型的空间的大小
关于if else:分支增加加大了理解的难度,正向的考虑单独合法情况,逆向的将all不合法一次性排除更为有效
多组测试数据:对于多组测试数据,当枚举方式过大时,考虑是否可以采用一次性构造的方法,构造出区域all合法,做O(1)查询
什么是初始条件:初始条件不一定仅限定为边界或者起始点,对于那些固定的值我们也可以视作初始条件
几种污染情况:两层for循环ij,当将dp[i]赋初值写在内层时,每次调用j都将初始化dp[i],使其每次从初值开始转移(应该是上层更新值),导致错误
数量n与方案n存入公共用:当存在共用时,外层循环每次方案n--,内层查询物品1~n,随着n--内层n不断减小
1的1e9乘方:1的1e9次乘方,卡掉
空间大小:对于空间大小,有限制n<k,但当呈现组合形式如n * n,n+n形式时,大小为组合值
memset:只能初始化0/1,忘记了初始化了-INF导致错误(应该数组跑)
对于数+-:x-(k为负数时) = x --k = x + k,所以对负数k:x+k保险
STL空调用:使用STL调用要注意容器不能为空,否则将RE错误
浙公网安备 33010602011771号