常见错误总结

博主今天因为 debug \text{debug} debug的事被教训了所以记录一下在 debug \text{debug} debug的过程中都发现了什么智障错误

  1. Mod \text{Mod} Mod的时候注意输入也可能超出范围,最好在输入的时候取一下模。
    对于某些sb题请在读入优化那个函数里也取模(NOIP2014解方程)
  2. 取模最好用函数操作进行 + − ∗ / +-*/ +/之类的,要不然代码又长又容易写晕还容易取漏
  3. 过样例了不要太激动,养成造极限数据手玩的好习惯
  4. 对于 N N N大小不一样的数组注意 N < < 1 , N ∗ N N<<1,N*N N<<1,NN之类的开数组大小,避免 R E RE RE
  5. 如果对于一个数据有不同的操作请注意数据类型是否相同,不要 i n t int int去做 l o n g   l o n g long\ long long long的运算
  6. 对于一些可能会比较难写的方法先在纸上写出思路再写代码,如果对于一个相同算法有不同实现请一定选择简单的那个实现
  7. 看到复杂度为 O ( n ) O(n) O(n)的可以考虑猜结论或者单调队列转移,用单调队列的时候至少要看看决策是不是单调的(就算没有严谨证明也得想清楚, t h i n k   t w i c e , c o d e   o n c e think\ twice,code\ once think twice,code once),单调队列没调出来的时候考虑队头队尾的性质,想想队列此时能不能弹空
  8. 对于代码要写很久(比如高精),但是分很少的情况,就先不要写了,先把其他更好拿的分拿到再写这些
  9. 一定要考虑清楚对于一个矩阵它哪个是行哪个是列(暴力写挂的悲惨命运)
  10. 多组数据记得清空
  11. 遇到题意不清楚的情况先把所有情况都写了
  12. 遇到 D P DP DP先不要考虑维数,大胆假设一下
  13. d i j k s t r a dijkstra dijkstra标记是否访问过是在队列里取队头时标记,不是一开始进队的时候就标记,它是看队头全局最小值有没有更新其他值
  14. 要取 m i n   m a x min\ max min max的时候注意初值,可能会初值赋的不好导致错误
  15. 最小生成树添加的边是无向边也不要 a d d add add两次,会爆零
  16. m e m s e t memset memset不能对 d o u b l e double double类型赋最大值(最好不要, W A WA WA过),建议直接 f o r for for
  17. 判断单调队列当前元素是否还符合条件时要根据题目定义(比如当前下标已经不满足题目区间了),不能简单用 l   r l\ r l r判断
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值