写题时一些注意事项与恶心的BUG

2017-02-25

1.循环顺序是个挺重要的问题。有时候,倒着比正着更快。
2.如果一些问题可以使用数组解决,最好不要用STL。map什么的少用,multiset在大数据下不要使用,亲测奇慢无比。
3.能用数组存下,就不要用vector。图里面最好用链式前向星。
4.树状数组query时不要写成x>=0。
5.写完代码检查一下,数组开的够不够,同时计算一下,有没有中间量会爆int。

2017-02-26

1.推一些数学公式时,一定要把求的东西简化再简化,否则很有可能TLE。
2.推完以后,最好在后面打个小标记,方便以后检查。尤其要注意正负号是否打错,是+1还是-1这种问题。

2017-02-27

1.在搜索中,注意判断边界,尤其是0的情况,防止RE。

2017-03-11

1.不要随便用memset!!!
如果这样写:

char a[10];
memset(a,1,sizeof(a));//正确

但如果这样写:

int a[10];
memset(a,1,sizeof(a));//错误,a会被赋值为0x0101

赋成正无穷可以这样写:

memset(a,0x3f,sizeof(a));//但不要写0x3f3f3f3f,那只是爆了而已

赋成负无穷可以这样写:

memset(a,235,sizeof(a));//赋-1是-1或255

2.今天写分块是循环变量名又写错了……我是沙茶。
3.写SPFA时一定注意终止的状态,否则80%RE。

2017-03-13

1.发现在遍历树时有一点小问题:

dfs(int u,int fa)
{
    blahblah...
    for(blahblah...)
    {
        if(NexNode==fa) return;//*
        blahblah...
    }
}

这么写的话车毁人亡。。(虽然有时候不会错)
里面标“*”的地方一定写continue;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值