耻辱柱
耻辱柱
本篇随笔记录博主的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,还要特判。