问题:设T为根于某个节点r的n节点树。我们想减少警卫人数 可能在T的节点上出现,使得T的每个边都受到保护:父节点之间的边 如果一个节点v守卫两个节点中的至少一个节点,则节点v及其子节点w被保护 v,w。 给出一个O(n)时间算法,以找到该问题的最佳解决方案。
我的方法是从根开始进行遍历遍历,并在没有保护的边缘的节点上放置保护,除非该节点是叶子...但是如果所有节点都在该算法中,则该算法将不起作用因为我的算法会在除链末端之外的每个节点上放置防护装置,所以将其排列成一条线性链。
我已经在线查看并检查了DP解决方案,这对我来说很有意义,但我想知道是否有一种贪婪的算法来为树找到顶点覆盖