Appearance
AT_dp_v — Subtree
思路
给树上的每个点染黑/白,要求黑色点集连通。对每个点
这是经典的 换根 DP。
一次换根 DP(down)
任取根
若某个孩子
叶子
二次换根(up)
答案
其中
自顶向下计算孩子
即「父节点
关键点:不能直接除
复杂度
- 时间:
(两次遍历 + 每个节点一次前后缀积) - 空间:
学到
- 换根 DP 的经典套路:第一遍自底向上求子树答案,第二遍自顶向下利用「兄弟/父侧」信息求全树答案。
- 当模数不保证是质数时,用前后缀积代替除法,或者用「根」的等价技巧避免求逆元。
- 黑色集合「连通且包含中心」转化成分支乘积
的思想。