zoukankan      html  css  js  c++  java
  • 代码品质

    细节决定成败,每一次都因为这些与优秀擦肩而过
    让每一份代码都成为无需修改的精品,是OIer应该具有的品质

    1、注意输出字符串的大小写,复制复制!!!


    2、注意该输出什么(不为0的,不为负的...)

    现场:输出且仅输出所有能被看到的颜色(100==>20)


    3、排序时注意有几个数

    //sort(a+1,a+n+1,cmp);
    sort(a+1,a+n+2,cmp);

     

    4、数据结构题的下标意义

    inline int newnode(int x)
    {
      val[++tot]=x;
      si[tot]=1;
      pri[tot]=rand();//tot==>x
      return tot;
    }
    

      

    5、斜率优化时的精度

    inline double SL(int i,int j)//double==>int
    {
      return (double)(Y(i)-Y(j))/(X(i)-X(j));
    }
    

      

    6、工具数组的初始化要从0开始

    for(int i=0;i<=3000;i++) b[i]=rand()%mod;
    //Hash的随机数组,没有初始化b[0]

     

    7、线段树四倍四倍四倍空间!

    const int maxn=1e5+10;
    int n,Q;
    int mx[maxn*4],mn[maxn*4],a[maxn*4];//maxn*4==>maxn

     

    8、空间要依照题意严格设置!!

    const int maxn=22;
    const int maxm=1e3+10;//1e3==>1e5
    //此处省略若干大小为maxm的数组
    struct TMP
    {
      int now,mxx;
      int aa[maxn][maxn];
    }op[maxm];
    //即使空间512MB也不能任性想开多大就开多大
    

      

    9、线段树的push_down()里面:

    tag[p<<1]+=tag[p],tag[p<<1|1]+=tag[p];
    
    //tag[p<<1]=tag[p<<1|1]=tag[p];
    

    10、树链剖分的$dfn$编号一定要在$dfs2$中

    11、矩阵快速幂的时候,尽量少模

    for(int i=1;i<=2;i++)	
    for(int j=1;j<=2;j++)
    {
      for(int pp=1;pp<=2;pp++)
      c.a[i][j]=(c.a[i][j]+(a[i][pp]*bb.a[pp][j])%p);//这里不要再模了
      if(c.a[i][j]>p) c.a[i][j]-=p; //这样模一下就行了
    }
    

      

    12、预处理逆元的时候,千万记得$inv[0]=inv[1]=1$

     inv[1]=inv[0]=1;//!
     for(int i=2;i<=8001;i++) inv[i]=(mod-mod/i)*inv[mod%i]%mod;
     //否则这里会出现mod%i==0的情况没有初始化
    

      


  • 相关阅读:
    Java 如何有效地避免OOM:善于利用软引用和弱引用
    LRU缓存实现(Java)
    Java实现LRU(最近最少使用)缓存
    HashSet,TreeSet和LinkedHashSet的区别
    IIS-详解IIS中URL重写工具的规则条件(Rule conditions)
    IIS-代理
    IIS-新建网站
    IIS-反向代理配置&&插件安装
    IIS-C#项目环境搭建
    IIS-Windows10如何安装
  • 原文地址:https://www.cnblogs.com/linda-fcj/p/9199714.html
Copyright © 2011-2022 走看看