标签: algorithm optimization tree dynamic-programming graph-theory
给出n个顶点上的树。选择最大数量的节点,使得所选节点中没有两个节点的距离小于d。输出是最大节点数。此处n和d最高可为10^5。如何在线性或拟线性时间内解决?
n
d
10^5
答案 0 :(得分:0)
是的:)
因此,您应采用自下而上的方法(或递归WITH MEMOIZATION)计算节点子树的最佳值。如果节点是叶子,则值为1.否则,请使用上面写的规则。
您应该尝试仅计算每个节点的值一次,并且每个节点的值仅用于其父节点及其第d个祖父节点,因此您的复杂度为O(n)
O(n)