曾经犯过的傻逼错误~

1.线段树pushdown一定要分开写,遇见有关精度的问题一定要先把有关精度的变量预处理成一个变量,不能一边算一边做
2.数学题记得不停地用模数取模防止爆long long,保险起见用快速乘

ll mul(ll a,ll b,ll p)
{
    return (a*b-(ll)((long double)a/p*b)*p+p)%p;
}

3.spfa记得vis[u]=0
4.倍增求LCA记得从大到小的顺序跳,还要避免变量名冲突,记得初始节点深度是1
5.广搜的时候记得把v加入队列
6.可并堆记得使用并查集路径压缩维护
7.合并并查集使用启发式合并
8.写spfa时记得加小优化:把队尾的值与队首+1的值比较,较小的扔前面,较大的扔后面
9.dp时记得初始化,数组下标要注意,千万不要越界
10.结构体里的二维数组不要开太大会爆掉
11.2019洛谷秋令营模拟赛tB,我将minn的初值赋为了1e9,开心的拿到了10pts的好成绩,比赛后我觉得算法比较正确,将minn的初值改为了9999999999999999,于是拿到了100pts的好成绩
12.还是那场比赛(真是降智 TA的滚动数组没有清零…… 所以这是血的教训:滚动数组记得要清零
13.线段树记得询问和修改不要把(l,r)和(x,y)区间写反
14.主席树向函数里传递root[x]而不是x
15.写数论分块时循环里的变量记得开long long
16.写tarjan的时候如果有多组数据记得清空stack和top
17.三目运算符里面最好只写一条语句,多条语句写if

爱我所爱,行我所行,听从我心,无问西东。