• 错误集合


    如题所述,专门记录自己在各类考试、做题中出现的花式错误。

    2020.08.24

    1. 多组数据,小范围搜索,大范围骗分的时候,没有注意小范围搜索的用时,导致 TLE 。( 2020.08.24 bracket
      处理:不要贪心,同时严格把控小范围的时间空间开销。

    2. 从母串 (S) 里面提取子串 (T) ,然后本应该在 (T) 上进行的操作,全部搞在了 (S) 上面,导致 WA 。( 2020.08.24 play

    3. 中途修改写法,把外部的写成的某一个步骤封装或者改写成函数。其中函数的某个参数是全局变量,但是内部相关参数没有改名字,导致 WA 。( 2020.08.24 river
      处理:善用替换功能。

    2020.08.25

    1. [Ynoi2019模拟赛] Yuno loves sqrt technology II
      写莫队发现自己没有排序,T 飞了。
      大致可以描述为:

      void Init()
      {
          //对 Q 数组进行排序 
      }
      
      int main()
      {
          Init();
          ......
          //读入 Q
          return 0;
      }
      

      处理:一定要将数据读入完之后再预处理

    2. 题目见上。
      写分块的时候对边角块处理不当......

      void UpdateBlock( int id, int l, int r, ... ); //块内处理
      void UpdateAll( int L, int R ); //全局处理
      {
          if( 左边有边角块 ) UpdateBlock( 块编号, L, R, ... );
          ......
      }
      

      事实上应该将左右边界限制在块的范围内

    2020.08.26

    1. 【UR #2】跳蚤公路
      循环变量用上了不常用的名字,结果之后就写错名字:

       for( 对 i 循环 )
              for( int u = 1 ; i <= n ; u ++ ) //......
      

      处理:尽量规避奇怪的循环变量名称,同时写的时候也要带脑子。

    2. [CF446C]DZY Loves Fibonacci Numbers
      分块写法,清理标记的时候,没有判断有没有标记:

      void Normalize( int id )
      {
          //这里缺少了是否存在标记的判断
          for( int k = lef[id] ; k <= rig[id] ; k ++ )
              //......
      }
      

      最开始以为分块的标记和线段树类似,现在才意识到,分块下放标记的时间是 (O(T)),所以不判掉就会特别慢......

    2020.08.27

    1. 模拟赛。
      写 DP 数组,虽然时间复杂度不对头,但是我很自信,于是就把空间开到了最大,希望能卡过。
      然后它就 MLE 了,呜呜呜~
      省选的时候就吃过了数据结构 MLE 的亏,今天倒是注意了这一点。
      没想到 DP 数组也能 MLE ......
      处理:比赛最后检查的时候一定要算一遍空间,不要太贪心。

    2. 模拟赛。
      最后 45 分钟 rush 一个正解。由于人很慌,而且是数据结构题目,所以小数据就拼了个暴力上去,想着是有保底的分数。
      测出来我就发现,我正解写对了,但是暴力居然写错了?!
      于是就挂了......

    3. 还是模拟赛。
      以为 T3 不太难,于是硬刚它。没有想到它是很恶心的结论题目,于是我就花费很多时间,换来了 10pts 的好分数。
      处理:开场时每道题先粗略地思考一下,评估难度规划好时间,避免吊死在一棵树上

    2020.08.31

    1. [HDU6826] An Easy Matrix Problem

      树状数组写模板写习惯了,结果现在带上取模却忘了改板子,然后就 WA WA WA 个不停。

      处理:尽量少复制板子,尽量重新手写。特别是遇到取模等特殊情况的时候,一定要多多检查自己认为正确的板子!

    2020.09.01

    1. [HDU6864] Jumping on a Cactus

      错误一:多组不清空,爆零两行泪。

      错误二:写圆方树却没有开两倍空间,清空的范围也不够,于是就疯狂 RE 。

      处理:想好了之后再开始写代码;中途有修改的话记得看一看代码中的其他地方有无影响;检查代码。

    2020.09.11

    1. [CF1391E] Pairs of pairs

      错误:多组不清空,爆零两行泪。梅开二度

    2020.09.19

    1. 模拟赛。某题有多解,要求输出 " 字典序最小的一组 " 。

      由于方案构造起来并不复杂,所以......直接没有看到这个要求(甚至过了大样例),暴毙。

    2. 模拟赛。预处理应该按照值域为范围来清,结果只清到了点数范围,继续暴毙。

    2020.09.27

    1. [CF1383E]Strange Operation

      同一变量多次重复使用,中间没有清空,直接暴毙:

       int lst = N + 1;
       for( int i = N ; ~ i ; i -- )
       {
         nxt[i][1] = lst;
         if( S[i] == '1' ) lst = i;
       }
       //这里本应该清空 lst 的
       for( int i = N ; ~ i ; i -- )
       {
         if( S[i] == '1' || S[i + 1] == '0' ) nxt[i][0] = lst;
         if( S[i] == '0' ) lst = i;
       }
      

      处理办法:带脑子写题就好了,编写的时候要对当前变量的作用有清晰的认识,才能减少出错概率。

    2020.10.06

    1. [HDU6334]Problem C. Problems on a Tree
      画蛇添足,本身不需要用 map 的地方偏偏使用了,导致程序及其慢, map 占用了将近 (frac 1 3) 的时间。
      处理方法:慎用 STL ,尤其是比较卡或者没开 O2 的时候。

    2020.10.12

    1. [CF1408E]Avoid Rainbow Cycles

      最大生成树,运算符直接重载为了小于。

      处理方法:注意这种小细节,不要惯性思维。

    2020.10.15

    1. 我不记得了

      突然想起来,于是记一笔。这个错误已经犯过两次了

      写程序的时候,中途使用了 cmath 中的函数,但并没有加上头文件。问题是,Dev-C++ 的垃圾库直接把 cmath 丢到了 algorithm 里面,所以 ......

      CE!

      处理方法:正式考试的时候,最好用一下其它正规的编译器。或者在检查的时候,对于每一个函数检查它的头文件是否已引用。

    2020.10.20

    1. [LGR-078]蝴蝶与花

      题目数据范围太鬼畜,没判断 s==0 直接暴毙。

      处理方法:仔细阅读范围,最好能在程序/草稿纸上把数据的细节写下来。

  • 相关阅读:
    Android ANR异常解决方案
    数据结构之斐波那契查找
    数据结构之插值查找
    数据结构之折半查找
    Android Task 任务
    java中“==”号的运用
    php中向前台js中传送一个二维数组
    array_unique和array_flip 实现去重间的区别
    js new Date() 获取时间
    手机端html5触屏事件(touch事件)
  • 原文地址:https://www.cnblogs.com/crashed/p/13554572.html
Copyright © 2020-2023  润新知