WA
- 多测未清空!!!
- 2020年11月7日以前:没开
long long
见祖宗;
2020年11月7日至2020年12月5日:没开unsigned long long
见祖宗
2020年12月5日后:没写高精见祖宗 - 两个
int
相乘前面没写1ll*
而爆long long
- 多个
int
进行乘除一般来说先乘后除 - 出现取余运算时若使用减法需要加上模数再取模,防止答案变为负数
- 出现取余运算时不能直接进行除法(黑科技:对于任意模数m mm,计算x / 2 x/2x/2模m mm的余数(前提是在不取模的意义下x / 2 x/2x/2是整数)时可以先计算出x m o d 2 m x\bmod 2mxmod2m的值,然后除以2 22后再模m mm,证明略)
- 浮点数掉精度(如a = b a=ba=b,而a b \frac{a}{b}ba计算完后略大于1 11,导致
acos(a/b)
返回nan
) abs
只能是返回整数(输入浮点数会输出0 00),std::abs
或fabs
才可以返回浮点数(如果你的程序里有using namespace std;
就没事了)a*=b
比a=a*b
更容易爆精度- 调试代码没去掉(为啥我会犯如此zz的问题啊……
- 文件输入输出打错(如著名的“travel4”)
- 写带结构体的STL的时候比较函数没有比较第二维(使用STL的
pair
就不会有这个问题) bool
中1+1=1
我也不知道为什么,还有1*2=1
(《关于yhc调代码调了半天发现自己数组开成bool这件事》)- 未定义行为:连续等号赋值的同时其中一个变量
++
或--
等(如a[na++]=b[na]=c
) double
和int
要分清,如int eps=1e-8
显然有些问题for
的内部记得打对,如for(int j=1;j=n;i++)
有两处错误- 模数为1 0 8 + 7 10^8+7108+7、998244853 998244853998244853等诡异的数
v.size()
的类型为unsigned
,要将其转化为int
,否则v.size=0
时v.size()-1=2^32-1
- 树剖中单点修改应该修改
dfn[x]
而不是x
- 线段树覆盖的下传标记和加的下传标记不冲突且在下传覆盖的标记时要清除加的标记
- 不能同时用
+=
和(...+...)%MOD
,如:a+=(a-b+MOD)%MOD
就错了 - 并查集判断两个点是否在一个集合中的时候是
faa!=fab
而不是a!=b
(我是伞兵 - 求子树大小的时候初值为0 00
- 哈希建议使用多模数
CE
C++14
下似乎不能用register
- 结构体末尾没打分号提示
invalid declarator before ...
- 建议加上
-Wall
编译选项以防神奇错误 - 使用
#delfine int long long
时main()
前应使用signed
C++14
下gets
似乎会报错,可以用getline
或while(scanf("%c",&c)!=EOF&&c!='\n'&&c!=' '&&...) ...
代替- 警惕变量名:
y1
,hash
,next
,time
等 - 文件输入输出记得加
#include<cstdio>
TLE
- 模数没开
const
(我也不知道为啥这个会超时,特别是在写多项式的时候)(梅开二度 - 输入输出较多时使用
scanf
和printf
- 多测中若∑ n \sum n∑n有限制,不能直接使用
memset
,否则可能会T strlen
效率为Θ ( n ) \Theta(n)Θ(n),建议不要在for
循环的条件中写strlen
,vector
等STL容器大小函数也一样,一般图论广搜的while
条件中建议使用!q.empty()
而不是q.size()
- STL容器中的
lower_bound
函数比普通的lower_bound
会更快
MLE
- 栈空间用多了?
- STL容器中插入了过多的元素(在一个会向STL插入元素的循环中死循环了)
RE
- 倍增时数组超界(已经梅开二度了
- 线段树没开四倍
- 邻接表有无向边时未开二倍
- 注意检查数组大小是否少打一个
0
(惨痛教训,我也不知道为什么没有RE
……) - 弹出栈的时候没有判断栈是否为空
- 1 0 6 10^6106内的两个数异或后可能超过1 0 6 10^6106(要考察有多少二进制位)
- 数组大小要比遍历的范围大
- 警惕二分的各种死循环
其他
这里写一些不太算是错误的错误:
- 对拍(或其他时候)生成伪随机数请勿用
rand()*rand()%n
这种奇怪的方法(原因是生成出的伪随机数不均匀),要的话请用for(int i=0;i<=60;i++) x|=((rand()%2)<<i)
生成随机long long
后再取模
版权声明:本文为weixin_43849488原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。