耻辱柱

耻辱柱

本篇随笔记录博主的SB错误合集。

博大家一笑


1、

注意有些常量不要在代码运行过程中更改掉,这样的话,你以为正确的量,其实不是原来的量。

比如:

void divide(int x)
{
    for(int i=2;i<=sqrt(x);i++)
    {
        // printf("%d %d\n",x,i);
        if(x%i==0)
        {
            fac[x].push_back(i);
            // printf("%d\n",i);
        }
        while(x%i==0)
            x/=i;
    }
    if(x>1)
        fac[x].push_back(x);
    // for(int i=0;i<fac[x].size();i++)
    //     printf("%d ",fac[x][i]);
    // puts("");
}

分解质因子,就这B玩意博主调了一个点,divide(4)死活啥也没输出。后来发现,原来传进去的x在x/=i的过程中被更改,导致最后的x不是传进去的x。

2、

各种忘开long long,忘开unsigned longlong,开了不会输出。

2019CSP因为这个挂了5分。

2020CSP因为这个挂了40

这就是屡教不改,FSW啥也不是。

再次重申,unsigned能存到264-1,longlong只能存到263-1,带正负。所以如果极限数据2^64,还要特判。

posted @ 2020-11-30 16:12  Seaway-Fu  阅读(617)  评论(1编辑  收藏  举报