写过的bug

使用板子需要的注意事项

  1. 注意下标的开始位置0~n-1 还是1~n
  2. 注意数据范围

做题时常出现的bug

  1. 数据是否会爆范围 (有浮点型要先乘1.0,如果有先做乘法再做除法要小心)
  2. 多层循环时下标是否写错
  3. 数据范围是否写错 (如1e4写成1e5)
  4. 全局变量和局部变量是否重名
  5. switch 要加break
  6. 注意题目中数据范围,如可取的次数超过元素的数量 如i<min(k, n)
  7. 注意特殊样例,如n=1 n=0 n=-1
  8. 注意前导0
  9. gets()读入一行,相当于对于一行进行scanf,会吃回车,但是不会存储到字符串中 getchar()一次吃一个字符
  10. 初始化
  11. 取模!!取模!!如果可能出现负数要ans = (ans + mod )%mod 多校第五场血的教训
  12. 32bit-integer相加会爆int
  13. 曼哈顿距离。注意是abs(x[i]-x[j])-abs(y[i]-y[j])并不是abs(dis[i]-dis[j])
  14. sqrt()函数精度问题较大,需要手动修正精度
//平方根修正
ll sqr = sqrt(x);
while ((sqr+1)*(sqr+1) <= x) sqr++;
while (sqr*sqr>x) sqr--;

小技巧

  1. 根据数据猜公式 如求定积分那题
  2. OEIS

循环节

  1. debug 计算循环节时 所求等效位置
    if(x>begin)
    where=begin+(x-begin) %mod+mod
    

results matching ""

    No results matching ""