读书读少了,不会取标题
1.2
- 差分数组 \(d\) 的 \(\sum\limits_{i=1}^{r}d_i(r-i+1)\) 形式只能用于求 前缀和。即 \(\sum\limits_{i=1}^{r}a_i\)。
- 图论建模 DAG 判是否有解:万能方法,判跑完拓扑排序后的 度数 是否全为 \(0\)。不要使用 DP 值,在环上的节点的 DP 值也能够被更新。
- 边、路径等一系列二元组 \((u,v)\),两种情况 \((u,v)\) 和 \((v,u)\) 都要注意。
1.4
- 向量叉积:\(\vec{x}\times \vec y\),\(\vec y\) 在 \(\vec x\) 的 逆时针方向 为 正,顺时针方向 为 负。
1.6
-
原树 \(n\le 2\times 10^5\) 的边分树,高度可以达到 \(22\)。
-
不同变量的数据范围不一致导致的数组开小(典中典)。
-
看到边 \((u,v)\) 满足 \(u<v\),无脑认为图是 DAG。题目仍可以要求是 无向图(尤其是英文题面,容易看漏)。
-
DAG 上,要求固定从某一点出发进行时,通过 dfs 求出该点能到达的点,删去不能到达的点,而不是其他操作,否则计算每个点的入度仍会出错。(一个能到达的点的所有出边连接的点也是能够到达的,因此只要该点能到达,其出边每个点入度加一)
1.14
-
将一个数按进制位输出时,除了要特判前导零,也要注意数恰好为 \(0\) 时要输出一个 \(0\)。
-
pw[x]计算 \(a^x\) 时,要算够,超过值域。
1.15
-
线段树维护区间取相反数、最大值、最小值时,注意交换
max、min再取反。 -
可持久化线段树应该开 操作总数 \(\times \log_2 n\) 个节点。操作总数一定要注意其常数。
1.17
-
因未知原因,取模不能通过将
long long替换为unsigned long long检查,两者值可能相同。 -
树上换根 DP:记录前缀后缀转移时,要注意信息是否会因
dfs而改变。一种写法是记录在儿子上,而不是 \(1\sim dg_x\) 递推,避免此类问题。
1.20
- 点分治在分治重心 \(x\) 处考虑的是 经过 \(x\) 的路径。不要写着写着把其他贡献算上了。
1.22
- 矩阵乘法,一定要正确判断初始矩阵是否为 单位矩阵,不要因为判断错误,没有乘初始矩阵。
1.28
- 前缀和优化 DP:对于初始 DP 状态,需要检查是否所有能够用到的前缀和 \(g_j\) 都求出了。
2.20
- 对图求 dfs 树时,返祖边 \((x,y)\) 会在 \(y\) 和其祖先 \(x\) 分别枚举到一次。
- ODT / 颜色段均摊要先
spl(r + 1)再spl(l)。因为spl(r + 1)可能把l为端点的区间劈开(删除),加入新区间。

浙公网安备 33010602011771号