Dp: dp[u]=max{ sum(dpS[])+1, sum(dpC[])};
以某一个顶点为根的树,运用此DP公式.
意思是,
如果选结点u,那么dp[u]=孙子结点的dp[]和加自身这个结点1.
如果不选结点u,那么dp[u]=孩子结点的dp[]和.
代码里注释有: 无根树转化有根树算法.
在算法中,顺便记录了每个结点的层次.
这样,在做刷表DP的时候, 可以很方便的在根树种,按层次从底向上刷表.
Dp: dp[u]=max{ sum(dpS[])+1, sum(dpC[])};
以某一个顶点为根的树,运用此DP公式.
意思是,
如果选结点u,那么dp[u]=孙子结点的dp[]和加自身这个结点1.
如果不选结点u,那么dp[u]=孩子结点的dp[]和.
代码里注释有: 无根树转化有根树算法.
在算法中,顺便记录了每个结点的层次.
这样,在做刷表DP的时候, 可以很方便的在根树种,按层次从底向上刷表.