zoukankan      html  css  js  c++  java
  • 填坑帖 By cellur925

    从今天到noip 记录下我犯的一切愚蠢错误。

    7.17~7.19  把文件 注释掉了,输出语句放在了关文件之后

    7.19           判断素数的板子 把%写成了&

    bool prime(int q)
    {
        if(q==1) return 0;
        if(q==2||q==3) return 1;
        if(q%6!=1&&q%6!=5) return 0;
        int cnt=sqrt(q);
        for(int i=5;i<=cnt;i+=6)
         if(q%i==0||q%(i+2)==0) return 0;
        return 1;
    }

    7.20       慎用诸如“while(tmp)"的表示!   老老实实写tmp>0 or tmp>1 坠吼了。

    7.26        写线段树的时候一定要建树啊!

    7.26        使用邻接表时,如果有节点为0,那么head应初始化为-1. 

                   您想初始化,但是连n都还没输入,初什么始化!(摔)

    7.27        组合数初始化和递推时要有相同的上界(循环上界),否则会炸掉

                    及时取模!!!

    7.29        数位dp要把初值设成-1qwq。因为0也是枚举的数呀qwq。

    7.30        输出中间结果的/debug的语句一定要删掉呀qwq。否则会too many or too few lines。

                   有取模的复杂运算,如越狱,一定要注意如果最后为负数,加上模数。

                   右移与“/”通常用来去向下取整,需要注意的是算术右移是真正的向下取整(负无穷),而/本质是向0取整。

    这种差异在有负数存在时影响最大。如(-3)>>1=-2,而(-3)/2 =-1

    7.31         在做USACO回家时,发现linux和windows下的换行差异好大!先挂起这个问题,有noilinux虚拟机后好好研究下。

    Linux中换行符是' '而Windows中是' '(多一个字符),有些数据在Windows中生成,而在洛谷评测机Linux环境下评测。这种情况在字符串输入中非常常见。

    说人话也就是linux两个换行符,win下一个换行符

    8.9          多组数据清空head数组/多组数据“~”/“EOF”防止死循环

    8.10        存图时注意重边和自环

    8.16        点从0开始编号时,注意head用-1赋初值,遍历的时候改为

    for(int i=head[u];i!=-1;i=edge[i].next)

    8.19        今天发现了一个害怕的事:在win下头文件如果误打为大写(如Cstdio),不会CE

                   然鹅 在linux下会CE!!!(逃

    8.24        写dp题的时候:要注意赋特值和初值(memset)间的前后关系!

    8.24   朋友,无解的时候是不是要输出一些东西???(已经犯了好多次低级错误)

    8.25   前排围观kkksc03爷

       变量名不要开pipe time x1 y1 next等,具体可参照cpluscplus/algorithm

       I64d怕燕大老爷机跑不过

       样例测试 wtm今天才知道GGF送大样例(在选手目录文件夹中)

    8.27    写spfa的时候出队以后要把vis[]设成0

    8.29    想起来要开long long的时候也要在输出时改成lld!!!否则没用!

    9.5   用scanf printf时一定注意数据类型!(Chemist的错误

          进行广搜深搜等题目需要判断越界 先判断!

     这样就是对的==

    先判断vis[][]就是错的==

    9.9   读单个字符用个小的字符数组吼啊==

    9.11  hash不要当变量名==

    while((ch=getchar())!=EOF)

    这句必须要加括号 我也布吉岛为什么==

    string类型,赋值一定存在严格的先后关系。

    tmp=seq[i]+tmp与tmp=tmp+seq[i]是完全不一样的==

    string类型开始赋的时候不能为空:

    常见技巧开始先赋成string tmp=""

    (见于USACO魔板、联系)

    9.13    (常见于计数问题)给一个ans longlong型的可能会开到很大如1e40,这时我们平时用的什么0x3f3f3f3f全部不好使==

    9.16   (计蒜客模拟赛)LAdalao因为没看全数据范围 所以....没有AK!!!!

    9.25      map的[]操作是logn复杂度的....!

            观赏了一波zsydalao的操作,发现结构体可以直接强制类型转化地赋值:cellur[i]=(sta){i,j},ij要按结构体中声明变量的顺序进行。

            防止整数被0除。

    9.26    一些防止内存泄漏的问题:在判断数组是否越界、队列是否清空的问题上,我们要先判断。

          因为&&是从左到右判断的orz....

          这是一个严重的问题~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    9.28    又是犯傻的一天~~~

          把1e6当成100000(逃)1e6是1000000啊喂!

    10.1    写了个线段树1的板子:ask没开longlong ,然后...没下传懒标记(wtf?)

          有些题初始化是输入的数,这种情况不能在全局初始化(还没输进来)。如种树中的“$num$“

    10.3    kmp里的next数组,虽说是这么叫,但是你真的放心把它写成next 嘛?nxt好。

          尽量不要用memset赋1(真香),会出现各种奇怪的错误。赋0,128,127,0x3f海星。

    (在做差分约束--糖果时遇到的)手写for循环初始化不行嘛?(摔)

    10.4    建图 多组数据:清空head&tot

    10.5    dp的时候考虑枚举0

    10.6    有的题必须用快速乘==(炸longlong且不想高精的情况)

    10.7    LCAinit时一定要记得q.push(v)

    10.8    防止整数被0除!& 发现特殊性质,从这里挖掘做题!

          list也是关键字!

    10.10     乘哈希131的时候,最好把131赋为一个unsignedlonglong类型的全局变量。

    10.11     map是个好东西 可以处理负数下标qwq

    10.12     strlen尽量不要多次调用 会TLE,因为听说操作是$O(n^2)$的。

    10.14     end是关键字!

    10.25     好久没来了qwq。好像dijkstra不能跑最长路?

    10.26     32位整数:int;64位整数:longlong。别问我为啥要记这个233.

    10.27     给二维数组赋初值的时候,一定要尽量把空间用满,不开大。比如数独

    const int group[10][10]=
    {
        0,0,0,0,0,0,0,0,0,0,
        0,1,1,1,2,2,2,3,3,3,
        0,1,1,1,2,2,2,3,3,3,
        0,1,1,1,2,2,2,3,3,3,
        0,4,4,4,5,5,5,6,6,6,
        0,4,4,4,5,5,5,6,6,6,
        0,4,4,4,5,5,5,6,6,6,
        0,7,7,7,8,8,8,9,9,9,
        0,7,7,7,8,8,8,9,9,9,
        0,7,7,7,8,8,8,9,9,9,
    };

    如果开成$group[9][9]$和$group[50][50]$就显然不行,因为后者在运行时会理解为连续的一段即$group[1][1~50]$。一定要注意!

    10.30  初值赋成负无穷和0谨慎选择!这在数据结构题目(有负权)的时候应尤为注意~

    10.31  end是关键字!!!啊啊啊啊啊啊啊啊心虚的一批!

          取某一位的时候,int类型和bool类型的区别!(最长异或路径)

    11.2    要膜东西的时候如果式子出现了减号一定加上模数!!!!

    11.6    二分的时候 如果改变了原来的值 要赋到新的变量中 防止以后再搜的时候不是原来的情况

          考noip2013 边权少了2倍hhh,lca写挂了一个符号

  • 相关阅读:
    内功心法-代理模式
    java.lang.NumberFormatException: multiple points
    MarkDown语法-使用博客园的markDown编辑
    MarkDown语法
    linux下安装tomcat——service tomcat does not support chkconfig
    关于git&github的操作
    activeMQ 本地测试
    spring AOP 的坑~
    js高级面试题
    js的内存管理
  • 原文地址:https://www.cnblogs.com/nopartyfoucaodong/p/9339780.html
Copyright © 2011-2022 走看看