zoukankan      html  css  js  c++  java
  • 算法竞赛注意事项

    0.注意爆int有可能是ans+=(long long)a[x]*b*2;像这种语句如果没加(long long)就会升天。

    1.看清数据范围,不开long long见祖宗。

    2.不要乱用指针。

    3.memset不要乱用,可能会T,同时不要用它初始化double数组等等。

    4.每个test case结束后记得清空数组变量。

    5.看到2的次幂记得二进制位运算考虑一下。

    6.字符串读入用%s,防止奇奇怪怪的回车处理。

    7.边读边处理有时候需要注意不要处理到没有读入的地方。

    8.-= %=用之前看看运算符的优先级。ans-=a-b之类的写法一定要注意!!

    9.正难则反(eg.CF619 Div2 C)

    10.DFS/BFS写判定条件时最好用!=,因为== 可能有多种情况,稍有不慎就会漏掉(POJ2251等)。

    11.写了一大串子函数以后别忘在主函数里调用!!!!

    12.无向图存双向边,和边数量有关的数组一定要开两倍,要不然会RE!!

    13.最短路题中可以忽略,如果使用邻接矩阵记得取min.
    最小生成树题中可以忽略.
    求桥和割点的时候千万小心重边,在tarjan中使用恰当的方法记录刚刚走过来的边,而不是节点.

    14.DP数组的边界一定要正确初始化!!

    15。有的题建反图格外简单

    15.搜索题别忘了vis.

    16.对于成环的字符串/序列,可以考虑复制一份接在后面进行处理。

    17.DP数组不要害怕开到高维度。

    18.树DP不要忽视父节点与子节点之间边的关系,有的题可能会比较关键。

    19.两组数如果分别和相等积相等,就构成了一个比较强的条件,可以用来粗略判断元素是否相同。

    20.位运算多从逐位比较考虑 比如第1,2,3...位

    21.一定不要对树状数组维护的数组直接操作!记得用modify

    22.涉及到线段树维护的东西需要取模的时候,一定不能随便多写冗余的取模操作,本身常数就很大了,一多写非常容易T...

    23.线段树别忘记建树!

  • 相关阅读:
    JavaScript垃圾回收机制
    clientHeight ,offsetHeight,style.height,scrollHeight有区别与联系
    win10家庭版安装Docker
    jacoco代码覆盖率报告分析
    jenkins build
    NoSuchAlgorithmException
    记一次单元测试问题com.sun.crypto.provider.HmacSHA1 cannot be cast to javax.crypto.MacSpi
    Mockito入门:如何在Spring中Mock部分对象
    H2数据UNIX_TIMESTAMP兼容问题
    java
  • 原文地址:https://www.cnblogs.com/lipoicyclic/p/12311394.html
Copyright © 2011-2022 走看看