一个bug,持续更新……

April 12, 2013

  • scanf(“%d%d”, &n, &mz[n]); 这样的写法是不对的……
  • 全局变量不要和局部变量命名成相同的名字,尤其是循环变量不要设置成全局的,很危险。
  • 数组要初始化,尤其是多case的时候
  • 写代码的时候要全神贯注,千万不要因为一时的疏忽,出现一个最难发现的最弱智的bug……
  • 还有,memset(a, 1, sizeof(a));貌似有错……慎用。注:这货只能用4个字节都相同的整数!比如,0x7f7f7f7f 或者 0x3f3f3f3f
  • 有一点最受不了的就是:为什么最近输入老是忘了写取地址符?果然是敲代码敲得少了么……
  • 输入格式,要用%lld还是%I64d,也可以用cin,cout如果输入量比较少的话。
  • D = 3;1 << D - 1 的结果是什么?注意优先级!有位运算的需要加上括号!
  • ==不要写成=,以前以为自己肯定不会犯这种错误,谁知道……唉
  • 初始化技术变量,尤其是多case的时候
  • 当多个case运行不对的时候,尝试一下只输入一个case,因为可能是多case的过程中,变量没有初始化
  • 尤其是开数组的时候,千万不能把大小写错了,或者,当出现运行都出现系统错误的时候,可能是数组越界了,看一下开数组的时候是不是开小了,或者是数字打错了。
  • 代码错了,自己想办法出数据测试,其实是一种十分重要的能力。
  • 写线段树的时候,计算中点的时候,int M = L + (R-L)>>1;这么写是不对的。。至于为什么,我也不知道。。反正因为这货卡了好久== 直接这么写就行:int M = L+(R-L)/2;
comments powered by Disqus