算法即将访问k离开节点并以最小步骤返回到根节点!!
认为这是一个站在第2点的人,他/她想以最小的步骤访问树的叶子,然后回到第2点。
对于k = 3,路径可以像
2→ “3” - > 2-> 1-> “0” - > 1-> “5” - > 1-> 2(此处3,0,5为叶子) 所以我们访问了3个水平..
答案:8
答案 0 :(得分:1)
这是根树上另一个自下而上的动态程序。
对于每个子树,我们计算访问j
的{{1}}个叶子的成本,作为列表。如果子树是单个叶子,则此列表为j in 0…k
,其中[0, 0, ∞, ∞, …, ∞]
表示无穷大,表示不可行的叶子数量。否则,我们计算每个子节点的列表,将每个列表中除第一个条目之外的所有条目增加∞
,然后通过卷积减少。要合并两个列表2
和A
,需要计算B
。返回根目录的[min {A[i] + B[j-i]: i in 0…j}: j in 0…k]
条目。
这是k
- 时间。