素数筛打表的时候默认为1为素数
DP转移过程中记录路径的情况,如果是从后向前算的,可能路径会被更新掉
每组数据初始化的时候,注意把建的边清掉一下
对一堆数字进行取LCM的时候,可能会爆int
结构体注意初始化问题,不要以为默认会被初始化为0,最好手写构造函数
~是按位取反,只需要把一位取反的时候不要用
线段树区间更新时updata忘记加lazy标记
输出结果的时候,有时直接输出结构体本地不会错,交上RE,注意下要输出结构体的属性
容斥原理判断某范围内模一些数为0的数的个数的时候,要求这些数之间不能一个数是另一个的倍数,比如2, 3, 4, 5,那么应该舍弃掉4,只取2
SPFA用栈替换成队列后,要注意出栈的顺序,要在加入新元素前把旧的出栈,加入新元素后取消出栈元素的标记
BFS某些情况应该在入队的时候标记,如果在出队的时候标记,有可能会出现一些不可描述的情况导致MLE
数据太大爆int
计算过程中爆int
取模姿势不对爆int
vis,book等标记数组没初始化
bfs队列没有pop
类似走迷宫那样的题,下一步要走的地方计算错误(比如ty 本应该是y+dirc[i][0],结果写成x+dirc[i][0])
浮点数精度误差,要加eps
数组过大每次都要memset初始化,导致超时
Case: 和数组之间有个空格,导致pe
直接拿输入的数据当下标,因为有负数re
DP过程累加爆int
题目卡SPFA换Dijstra AC
题目卡Vector,用前向星AC
DP输出路径时,尽量要从末状态从后往前推,这样容易处理字典序
解方程中,可能爆 int ,比如二元一次方程中的 B 来自输入的两个数据相乘,然后又用到了 B * B 结果 1000 的数据就会爆 int
位运算一定要括起来,某些位运算操作优先级比等于号还低
计算一组数据需要取膜时,记得手动初始化的也要取膜,比如斐波那契数列,f(1) = f(0) = 1 时, 如果模数为 1 那么应该初始化为 0 才对,保险写法为 f(1) = f(0) = 1 % mod
代码WA的时候要多检查下比较长的公式是否错误
对于 long long a = b * b * b 这样的式子要注意 b 是否为 long long 类型,如果不是运算过程中为 int 类型,检查下是否爆 int
注意数据范围, 2^31 是爆 int 的
用矩阵存图的时候,注意重边,如果有重边看情况更新
转载于:https://www.cnblogs.com/ACMFish/p/7222834.html