zoukankan      html  css  js  c++  java
  • 易错点集合

        这个随笔主要是记录一下做题过程中的易错点。

        1.memset只能初始化0或者-1.

        2.数组大小还是得准确计算,不要为了大小为1的差距而爆0了。

        3.lowbit(0)=0.

        4.gcd(F[n],F[m])=F[gcd(n,m)],不等价于gcd(F[n]%mod,F[M]%mod)。

        5.关于tarjan:

        邻接链表:

    for(int i=head[u];i;i=edge[i].next){
        int v=edge[i].to;
        if(!dfn[v]){
        .........
        }
        else
        if(vis[v]){
         ........
         }
    }

        可以看出,这里是在先判断有连边再判断dfn的。

        邻接矩阵:

        for(register int v=1;v<=n;v++){
            if(a[u][v]){
            if(!dfn[v]){不能写成if(!dfn[v]&&a[u][v])
            tarjan(v);因为它得先判断a[u][v]有路径再去判断vis[v]
            low[u]=min(low[u],low[v]);
            }
            else
            if(vis[v])
            low[u]=min(low[u],dfn[v]);
            }
        }

    这个错误,我找了好久,以后遇到类似的邻接链表转邻接矩阵不能再犯错了!

     6.三目运算符:pre[i]==-1?0:1;不能写成pre[i]=-1?0:1;!!!一定不能写成等号,编译器不报错。

     7.数组大小:如果const int N=???,int A[N],然后再for(i=1;i<=N;i++),这样数组就越界了!!因为A[N]这个空间是没有开辟的。

     8.一道题目如果想不出方法,可以选择(分类)或者(先思考出简化版的算法),如果选择了分类的话,最后一定要思考一下分的类能不能合并!

     这样可以简化代码,避免找错时间过长。

     9.在一些有关图的题目中,如果题目没有明确,这个图是个树,遍历的时候一定不能只从一个点开始遍历!!因为它们有可能不连通!!

     10.已知矩形的3个点求第四个点的时候所用公式:

    x4=x3+x1-x2;

    y4=y3+y1-y2;

    要保证在(x2,y2)处的角为直角,要考虑斜的矩形!!!

    11.线段树子结点一定要更新父结点

    tree[p]=tree[p<<1]+tree[p<<1|1];

    12. (-5)%2=-1.

    13.string 与 char 的转换会玄学RE。

    14.单调队列的初始l,r要注意x[1]这个点是否需要特殊处理. 例如前缀和中sum[0]需要存的时候

    15.

    fac存的阶乘%mod , inv 存的逆元%mod 

    inv[ fac[n] %mod] * inv[ fac[n-1]%mod ] 等于 inv[ fac[n] * fac[n-1] %mod ],且不能省略%mod, 因为不取模会爆long long int

    16.字符串读入尽量不要用cin...太慢了,getchar(),getline,scanf都可以。

    17.不要忘记交程序,或者交错程序。

    18.向下取整要用floor,一定不能用int,老的版本跑不出结果。

    19.sqrt返回的是实数!

    20.权值树状数组基本操作:求逆序对

    inline bool cmp(R A q,R A e){if(q.w==e.w)return q.p<e.p;return q.w<e.w;}

    我的这种写法不能省略cmp中的if语句

  • 相关阅读:
    位移算数符
    蓝桥杯 错误票据(第四届预赛第7题)
    hdu Train Problem I(栈的简单应用)
    ACM YTU 2018 母牛的故事
    ACM YTU 1012 u Calculate e
    C 语言 printf格式控制详解
    ACM YTU 十进制与八进制的转换 (栈和队列) STL栈调用
    ACM HDU 2044 一只小蜜蜂
    ACM YTU 挑战编程 字符串 Problem A: WERTYU
    ACM HDU 1021 Fibonacci Again
  • 原文地址:https://www.cnblogs.com/sky-zxz/p/9520119.html
Copyright © 2011-2022 走看看