我跳过的坑

  1. 写了Debug语句没有把它注释掉……

    比如说

    printf("%d %d",max,min);//Debug
    

    就这么交了上去,成功 WA(\(0\))分。

  2. 诸如 if(a=1) 的低级错误

    其实可以在编译的时候加上-Wall,编译器帮你筛出一些神奇的错误。

  3. 看到 \(a^{-1}\) 以为是普通的倒数?

    看到这种形式的题目还出现了模数,则既有可能为数论倒数。

    否则可能无法理解题意或样例

  4. 打 dfs/Trie 的时候变量意义傻傻分不清?

    要注意每个变量所代表的含义(当前处理数?节点编号?)

    最好写个注释!(因为这个我调了几个小时!)

    否则十分容易RE!!!

    举个例子:

    1. http://www.gdfzoj.com/submission/14426

    2. http://www.gdfzoj.com/submission/14452

  5. 注意数据范围和空间限制

    数组要开的比最大值多一点(e.g 范围 \(n\le10^5\),则数据开 \(100004\) 那么大)

    小了就RE,大了就TLE

    实在不能确定就用STL

    举个例子:http://www.gdfzoj.com/problem/734

  6. 注意范围

    http://www.gdfzoj.com/submissions?problem_id=734&submitter=Z_Z_R

    一个数组有效取值范围在 \(1\) ~ \(m\) 里,那么数组遍历一般这么写:

    for(int i=1; i<=m; i++) {
        //do something...
    }
    

    不要把 \(n\) 写成了 \(m\),等等

    否则起码WA

  7. 注意数组存放顺序

    定义数组应该这么定义:int a[2][N]常用的放后面(卡常)

    否则……举个例子:

    1. http://www.gdfzoj.com/submission/15745

    2. http://www.gdfzoj.com/submission/15859

  8. 注意边界数据

    边界容易出错,要注意,必要时单独处理

    举个例子:

    1. http://www.gdfzoj.com/submission/18757

    2. http://www.gdfzoj.com/submission/18758

  9. 注意数组越界

    这种错误一般就 RE ,比如说数组没开够,访问非法内存,等等。

    举个例子:http://www.gdfzoj.com/submission/18737 数组边界没开够 QAQ

  10. 注意算法正确性

    贪心要证明,dp要注意状态转移方程、处理边界

    举个例子:

    1. http://www.gdfzoj.com/submission/18690

    2. http://www.gdfzoj.com/submission/18691

  11. 运用快速幂时:注意快速幂后要模模数

  12. 线性筛素数时:注意数组不要越界,如判断1LL*i*p[j]<=n

  13. \(\texttt{dp}\) 时未详细考虑数据范围\(100\to0\),心态爆炸。

  14. https://www.cnblogs.com/AFewMoon/archive/2020/07/22.html

  15. https://oi-wiki.org/contest/common-mistakes/

  16. 在一个序列中,最长下降子序列的个数就等于其最长不下降子序列的长度.

    反过来也一样:在一个序列里,不上升子序列的个数等于最长上升子序列的长度。

  17. 在使用数据结构查询时,注意标记是否释放,数据是否同步

  18. 一个 unsigned long long 的变量要用 %llu 输出(此时要有 #include<climits>)。

未完待续……

本文作者:AFewMoon,文章地址:https://www.cnblogs.com/AFewMoon/p/12409457.html

知识共享许可协议

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

限于本人水平,如果文章有表述不当之处,还请不吝赐教。

原文地址:https://www.cnblogs.com/AFewMoon/p/12409457.html