慎用1e9可能会有不幸
不开long long 见祖宗(乱开long long也见)
慎用define
取余题(数据贼大):先计算,取余完了直接赋回去
t[id].cheng = (t[id].cheng * k2) % m;
//t[id].cheng *= k2 % m 会爆炸
将询问区间当成作用对象
数据类型,调函数时要对应!!!
不初始化见祖宗(尤其dp、比大小、多组数据)
vector存图不能存自环
询问多时用ST表(复杂度化乘为加),但也要慎用
小心黑♂暗森林!(图/树不联通)
主要矛盾1:实时处理VS预处理
暴力递归慎用(爆栈警告)(题实在不会了用)
少让较慢的STL函数进入循环
leng = strlen(s + 1);
for(int i = 1;i <= leng;i++) √
for(int i = 1;i <= strlen(s + 1);i++) ×
矩阵输入看好谁是行谁是列(傻逼样例只给正方形)
自然溢出base不要用114或114514(mi[k] = 0)
如果循环内部影响了终止条件,全写成函数
while(j && (sum(a[i]) != rk[j + 1] || sum(a[i] - 1) != idx[j + 1]))
{
for(int l = i - j;l < i - nxt[j];l++)
add(a[l],-1);
j = nxt[j];
} √
ll p = sum(a[i] - 1);
ll q = sum(a[i]);
while(j && (q != rk[j + 1] || p != idx[j + 1]))
{
for(int l = i - j;l < i - nxt[j];l++)
add(a[l],-1);
j = nxt[j];
} ×,因为add()影响每一次的sum()
求通解时系数除以GCD!
求通解时系数除以GCD!
求通解时系数除以GCD!(猜猜为什么有三遍)
卡常小妙招:发现情况立刻退出循环(也可以写成函数,if成立时直接return)
数论&组合:多取余 多取余 多取余 多取余 多取余 多取余 多取余 多取余 多取余 多取余
非 void 函数没返回值在开 O2 的情况下会 RE,就像 exgcd 函数。
数论中的除法必须全部使用逆元
留意逆天特判
精度比要求多\(10^{-3}-10^{-4}\)(要\(10^{-9},eps = 10^{-12}\))
第\(i\)条边在前向星中对应\(e[2i]\)(一条边存两遍)