tyf的脑残bug集合

众所周知tyf是一个只会写bug,不会debug的菜鸡,在写题或者打比赛的时候,对于一些水题,经常有思路但都是会挖一个一个坑给自己,结果就是在坑上浪费很多时间和心情,或者再惨一点,就直接没过qwq,特别是感觉自己代码没错但过不了的时候,炒鸡崩溃qwq,把自己的bug记录下来,希望以后能少给自己挖一堆莫名其妙的坑!

  • 在谁打过谁,谁打不过谁的问题里,要判断自己是不是能打过自己

  • 检查数组范围!!!每 个 数 组 都 检 查 !!!

  • 在爆ll的题里,检查是不是有中间变量也会爆ll,或者直接全设成ll型

  • 打表的题可以先把表,printf出来,检查对不对

  • pow(a,b)函数是用在浮点数上的,不要用整数上啊啊啊,否则会造成结果的不准确,然后就wa了,院赛的时候就这样,debug好久都没发现qwq,自己写个快速幂能死吗???

  • 流加速ios::sync_with_stdio(false);这个有坑啊,能不用就不要用,特别是处理字符串的时候

  1. 用getline()的时候,简直鬼畜,如果代码是这样婶的:(读入一个字符串,读入一行,读入一个字符串,如此循环)
while(cin>>s){
        if(s=="ENDOFINPUT")break;
        getchar();
        getline(cin,now);
        cin>>e;
        //cout<<now<<endl;
        int len=now.length();
    }

不加流加速就ok,加上以后,会读不进去now字符串,解决方法:

A.不加流加速,但是要加getchar()

B.加流加速,不加getchar(),加cin.ignore()

    2.用cin还用scanf的时候也会出错

  • 打haut的新生赛都能自闭qwq,赛后看了看,其实还有两题能A的,只是当时没看题……,所以一定要看题再写啊,别人不会的不一定我不会,别人秒A的我可能过不了qwq

  • 还有一个毛病,就是遇到数字的题,样例给的是1,2,3什么的,我迷之就没看数据范围,直接理解成数字只有0-9;还有一个题,给的样例都是0.几的浮点数,我就没考虑>1的浮点数(我是zz)

  • 又一次因为爆int而wa,这次是给的mod的数爆int了,一般不都给1e9+7么,然后那道题给的是1e11+7,爆int了,我还用int设……wa了一晚上,改成ll,过了……

  • 整数相除的结果是整数

  • 注意if……if和if……else if的区别

  • 写前向星的时候注意边数的取值范围

  • 以字符串形式输入数字的时候,别忘了考虑负数的情况哦~~

  • qwq遍历字符串数组的时候,不要写成for(int i=0;i<strlen(s);i++),今天因为这个超时了,555,len=strlen(s);写成:

for(int i=0;i<len;i++)

 

  • 一想到插入时有序,我就想用multiset,但是,set有个缺陷,它无法快速找到第i的元素,我们可以用vector实现这一功能,用vector插入时,每次先vector<int>::iterator it=lower_bound(a.begin(),a.end(),b[j]),很明显,二分就快很多

    然后a.insert(it,b[j]);

  • 图中找相同的图像,可以用字符串来表示,不同的图像

  • 写线段树的时候,一定要注意,有没有爆int!!!

又因为爆int  wa了qwq,这种情况可以这样:

for(ll i=2;i<=n;i++){
    if(is_prime[i]==true){
        d[i]=(i-1)*(i-1);
    }        
    else{
        solve(i);
    }
}
  • 给vector型的容器分配空间时:mape[i].resize(m+1);   若是从1开始存的记得+1!!!

又又又因为for循环中的i爆int,再发一遍,我就不信我不长记性啦,嘤嘤嘤

for(ll i=1;i<=n;i++){
    scanf("%lld",&val);
    mx1=max(mx1,i*i+val*val);
    min1=min(min1,i*i+val*val);
    mx2=max(mx2,i*i-val*val);
    min2=min(min2,i*i-val*val);
}
  • 注意有“a number of test cases”的情况啊啊啊,在循环内,该更新的变量数组记得更新!!!
  • emm,感觉算法没错了,但是WA到怀疑人生,就+个EOF试试吧……
  • double啊啊啊,乘除的数也设成double ,再设成int,你就凉了啊!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值