一、问题描述
二、问题简析
2.1 左孩子右兄弟
首先,我们要了解怎么通过“左孩子右兄弟”表示法将多叉树转化为二叉树:对于一棵多叉树,一个父节点有多个子节点,将第一个子节点作为父节点的左孩子,并与父节点相连;将剩余的子节点作为左孩子的右兄弟,并用边与左孩子相连(不是父节点);处理完所有子节点后,再按一样的规则处理其余父节点。
以该多叉树为例:

处理子节点:

以 1 为根节点“拉一下”二叉树:

注意: 多叉树中根节点的子节点并不一定按图所示的顺序排列,更准确地说,是无序的,也就是说左孩子和右兄弟的选择是任意的。
2.2 树状dp
设 d p i = dp_i= dpi= 以 i i i 为根节点的二叉树的高度; A i . s i z e = A_i.size= Ai.size= 原多叉树中根节点 i i i 的子节点个数; j ∈ A i j \in A_i j∈Ai</

最低0.47元/天 解锁文章
7508

被折叠的 条评论
为什么被折叠?



