zoukankan      html  css  js  c++  java
  • 审题习惯 && debug习惯

    做题习惯

    • 静态查错一遍后再测样例
    • 读double型的变量尽量用scanf
    • (int)r * 1000 应写成(int) (r * 1000)
    • 开新题之前,检查这一题的输出格式/数据范围会不会爆long long

    对于极端“小数据”

    • 矩阵乘法的时候注意考虑初始化的那几个值,特判输出。

    对于取模

    • 做了减法之后取模一定要while(ans<0)ans+=mod;
    • 你读入一个数,若它已经超过模数,直接模!别回头!,ksm的a和k都是可以直接模的
    • 题目要求模一个数的时候看清楚模的是不是质数
    • 除法一定不能取模,要化简公式或者乘逆元

    对于数组的初始化和long long

    • 如果判断-1的条件是 (某某==0x3f3f3f3f)千万不要开long long
    • 看到负数就要考虑数组的初始化,如sum[]等不用求max/min的数组就不需要,而保存最值的要填充0x3f/-0x3f

    对于建边的关系

    • 有重边会对答案有影响吗
    • u>v 会对答案有影响吗 swap 你值得拥有吗

    对于边界

    • 在搜索中,如何转化边界进行巧解
    • 在while(x)的时候一定要考虑x==0怎么办,不然,呵,你会debug很久很久

    调试了很久都会出错的

    • 树剖里写所有有关线段树的操作都要写id[x]而不是x!新图已经建好了!
    • 字符串的最后一位可能是‘ ’,注意一下。
    • 多组数据初始化

    常见编译错误

    • segmentation fault 你很可能是没有把数组开够………………
    • 用vector TLE的话可能需要reserve一下
      v.reserve(100010),etc.

    错题本

    • 用STL的容器时,必须先询问s.size(),要不然直接询问比如栈的s.top() 会爆(详见双栈排序)
    • memset不能给double类型数组赋初值(详见借教室)
    • memset可以给struct整体赋值
    • 在网络流中,若加边双向边,须使用 ^ 操作,所以tot(边数)一开始要赋值一个奇数(反向正向边)
    • 在差分约束中,SPFA一定要从0点开始.要不然图可能不连通(建一个超级源点0,向每个点连一条长度为0的边)
    • 在差分约束中,跑最长路是为了找环
    • 在差分约束中,形如a-b>=c的两边同乘-1得到b-a<=-c,即a+(-c)>=b,建图即可.
    • 对于差分约束系统来说,建议先无脑比题目中的点数多开个十来倍,因为差分约束系统经常会需要增加一些奇奇怪怪的条件(比如>=0)和辅助边
  • 相关阅读:
    jquery 停止animate动画,并且回复最初状态
    php mysql实体字符
    ECSHOP MYSQL 公用类库中的autoExecute方法
    ecshop 订单编号 get_order_sn
    ecshop 调用收货地址
    init.php 建立自己的前端共享文件
    php 生成随机字符串 abcdeft....789
    ecshop 订单-》订单状态 2
    ecshop后台,listtable.js使用
    ecshop Admin后台商品列表处(上架、下架、精品...取消精品)增加操作
  • 原文地址:https://www.cnblogs.com/sjsjsj-minus-Si/p/11634633.html
Copyright © 2011-2022 走看看