WA问题速查

记录一些莫名WA.

初始值

在进行dfs遍历的时候,初始值是0(根)然后取max的时候注意求max的初始值一定要比0还低,即-1,不然会被卡(入口就是最深处的hack)

式子

计算

取模会导致数字变小,所以min需要手动去判断!不能直接min.

条件严格

检查 <,> 这种运算符是否严谨,能换成 <=,>= 的一定要换.

函数有返回值但是不写

VSCode在函数有返回值但是不写的时候会RE,但是的devc++会返回0.

祖宗

long long.

交互

cout<<"!"<<solve()<<endl; 是错的,因为先执行 cout 输出然后再计算函数的值,也就是说 solve 里面如果交互再 ? 就直接WA了.

除法

检查一下有没有除0模0的特判.

分解

统计一个数的因数的时候,在 $f(x),f(n/x)$ 特判一下这俩数一不一样,否则会重复计数.

双指针

记得结算的时候动一下指针让 l 跑到数列末端.

给定一棵树有n个节点,首先要判定是不是一棵树(ie度数和 $\sum_{i=1}^nd_i=n-2$ )
一定要特判节点为1的时候有多少种情况!!!

  1. 树的相同判定:给一个深度上有多少节点的数组,判断这样的树是否唯一.

然而我们发现只有连着的节点大于2的才有多种,单独2后面还有链的并不算,可以看演示:

1
2
3
4
5
6
 a   a               a   a
/|\ /|\ /|\ /|\
bcd bcd bcd bcd
| | ||| |\|
e e efg efg
这两种树本质上一样.但是这俩不一样.

精度问题

有的时候取log或者怎么样然后涉及取整的时候函数会有精度误差,不能直接用ceil,要先减掉一个eps,否则会WA.

图论

  1. 给一张无向图,遍历,染个色(只保证无自环重边).

肯定是要bfs的了,但是有个hack是 给的图不一定连通 ,所以要在bfs这里套一个循环保证每个点都要进队(被遍历到).(CF687A)

数学

鸽巢的时候记得卡一下边界,虽然书上说最多能放 $\lceil\frac nk\rceil$ 个,但是最多能着的下 $n\%k$ 种,记得统计一下.(另外,如果ceil等于直接除的话要特判,因为此时 $n\%k$ 等于0)

目力

众所周知,某些质数因为长得像而混迹998244353,而有的则是正确输出 YE5 ,错误输出 N0 ,就很邪恶.

1
2
3
4
5
6
7
8
9
10
11
12
998244853 是质数
998244259 是质数
99824353 是质数
993244853 是质数
998242353 不是质数
998244533 不是质数

100000007(1e8+7) 是质数

19491001 是质数
19260817 是质数
1234567891 是质数