其他分享
首页 > 其他分享> > 换根DP

换根DP

作者:互联网

换根\(DP\)属于树形\(DP\),是二次扫描,因为这类问题通常不会指定根结点,并且根节点的变化会对一些值,例如子结点深度和、点权和等产生影响。
通常需要二次\(DFS\),第一次\(DFS\)来处理深度,以及点权和之类的问题,第二次\(DFS\)开始动态规划。

令\(u\)为当前结点,\(v\)为当前结点的叶子结点。首先需要用\(s_i\)来表示以\(i\)为根的子树中的结点个数,并且有\(s_u = 1 + \sum s_v\),那么这个通过一遍\(DFS\)就可以办得到。

考虑状态转移,令\(f_u\)表示以\(u\)为根时,所有结点深度之和,那么进行换根,让\(v\)为根,那么转移就是\(f_v <- f_u\),那么这时候各结点的深度可以分为一下两种情况:

标签:结点,DFS,为根,深度,换根,DP
来源: https://www.cnblogs.com/ZhengLijie/p/15357762.html