换根dp学习笔记

发现自己学习的换根dp全是假的。
我们在换根dp时,第一次dfs考虑处理出任意一个根的答案。
第二次dfs时,我们当前节点为\(x\)
我们考虑求出\(x\)的某个儿子\(v\)的答案,从\(v\)回到\(x\)后再求出以\(x\)为根的答案。
这需要在\(O(1)\)的时间内更新dp值。
视情况用set/加减法/维护最大次大维护。
以前写的都是\(O(deg)\)维护dp值,结果做一道简单题才发现自己的理解全是错的。

posted @ 2021-07-16 22:02  celerity1  阅读(53)  评论(0编辑  收藏  举报