错误记录 & 考场提醒
考场提醒
- 审题(看数据范围,看特殊性质)
- 手模样例,思考算法正确性及其实现(不要时间复杂度假掉,不要把正确算法当成假算)
- 注意空间大小,精细实现注意每一个数组和清空
- 看看能不能用暴力对拍 & 测极限数据
- 最后10分钟看文操
g++ a.cpp -o a -Wall -fsanitize=address -g
ulimit -s 128000
windows:-Wl,--stack=1234568789
a < ex.in > ex.out
user@NOI-Linux:~$ ./ex < ex.in > ex.out
user@NOI-Linux:~$ ./ex > ex.out < ex.in
错误记录
- 写线段树合并在merge的时候记得给rt赋值!!注意rt要赋初值,注意权值线段树的范围
- 精细实现看清数组大小!!平时MLE RE不要无所谓。
- 三维偏序一维排序一维归并一维树状数组
- 水平序倒回来是 len >= k+1,要往回做到底再删除尾点
- 并查集初始化!!!
- 链式前向星清空!
- 不要把break打成continue!!
(ans += f[1][i]) % mod;
是什么鬼东西??- 不要开小数组
- 不要少括号!!!死亡示例:
printf("%d\n", power(calc(0), mod - 2) + mod - power(calc(n + 1), mod - 2) % mod * ivk1 % mod);
- 上面那段模意义下乘法忘记(ll)了,哈哈。
- 清橙 int 函数 不返回 是UB 会爆零
- 读入 不 要 写 错
- 不要忘记调用整个solve。。。。
- 不要忘记break。。也不要写成continue
int l = max(op[x].l, op[y].l), r = min(op[x].l, op[y].l);
流汗了,我在干什么。- spfa标记清空
- treap的split和merge要pushdown!!!
- 不要重定义
int n; rd(n);
sze[y] += szv[x];
流汗了- 看清楚点从0还是1开始!!!
dfs1_tree(i, 0); tim = 0; dfs1_tree(rt.back(), 0);
绷- 不要想当然!!!不要肌肉记忆
- 不要在写简单部分的时候
看西洋镜想东想西,会写错的 - 初始化!!
- 开龙龙!!
- spfa不要忘记比大小后再入队,我写的啥玩意儿
- 不要1、2打错,,复制的时候老是忘记改
- 无向图开两倍数组
- 别往树里加n条边!!
QwQwQ