读书读少了,不会取标题

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

  • 线段树维护区间取相反数、最大值、最小值时,注意交换 maxmin 再取反。

  • 可持久化线段树应该开 操作总数 \(\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 为端点的区间劈开(删除),加入新区间。
posted @ 2024-01-23 07:40  sprads  阅读(35)  评论(0)    收藏  举报