diff --git a/TangDou/Topic/【换根DP】专题.md b/TangDou/Topic/【换根DP】专题.md index dad3a9d..543e668 100644 --- a/TangDou/Topic/【换根DP】专题.md +++ b/TangDou/Topic/【换根DP】专题.md @@ -1050,14 +1050,16 @@ void dfs1(int u, int fa) { 依旧分类讨论,依旧是上面三类(这里编号就代表上面的情况) 1、这种情况可以发现 $len[v]=len[u]+w_{u→v}$ ,很简单 + 2、这种情况很容易发现完全没有必要更新 + 3、最烦的情况来了,这种情况下我们还要分类讨论 - ① 当 $len[u]+w≥len$ 且 $id[u] \neq v$ 时,说明 $u$ 的最长链可以更新 $v$ 的最长链,那么直接更新即可 - ② 当 $len[u]+w≥len$ 且 $id[u] \neq v$ 时,说明 $u$ 的最长链可以更新 $v$ 的最长链,那么直接更新即可 - ③ 当 $len[u]+w≥len$ 且 $id[u] \neq v$ 时,说明 $u$ 的最长链可以更新 $v$ 的最长链,那么直接更新即可 - ④ 当 $len[u]+w≥len$ 且 $id[u] \neq v$ 时,说明 $u$ 的最长链可以更新 $v$ 的最长链,那么直接更新即可 - ⑤ 当 $len[u]+w≥len$ 且 $id[u] \neq v$ 时,说明 $u$ 的最长链可以更新 $v$ 的最长链,那么直接更新即可 - ⑥ 当 $len[u]+w≥len$ 且 $id[u] \neq v$ 时,说明 $u$ 的最长链可以更新 $v$ 的最长链,那么直接更新即可 +① 当 $len[u]+w≥len$ 且 $id[u] \neq v$ 时,说明 $u$ 的最长链可以更新 $v$ 的最长链,那么直接更新即可 +② 当 $len[u]+w≥len$ 且 $id[u] \neq v$ 时,说明 $u$ 的最长链可以更新 $v$ 的最长链,那么直接更新即可 +③ 当 $len[u]+w≥len$ 且 $id[u] \neq v$ 时,说明 $u$ 的最长链可以更新 $v$ 的最长链,那么直接更新即可 +④ 当 $len[u]+w≥len$ 且 $id[u] \neq v$ 时,说明 $u$ 的最长链可以更新 $v$ 的最长链,那么直接更新即可 +⑤ 当 $len[u]+w≥len$ 且 $id[u] \neq v$ 时,说明 $u$ 的最长链可以更新 $v$ 的最长链,那么直接更新即可 +⑥ 当 $len[u]+w≥len$ 且 $id[u] \neq v$ 时,说明 $u$ 的最长链可以更新 $v$ 的最长链,那么直接更新即可 ####[$CF708C$ $Centroids$](https://www.luogu.com.cn/problem/CF708C)