给出如下的树:
X
/ \
1 6
/ | \ / | \
2 5 9 1 5 3
... ...
对于每个节点,都有一个数字(根除外),在示例中,数字是随机的。
如果采用某个节点,则无法获取该节点的下一个子节点。但允许子 - 子节点。因此,采取以下节点是不合适的。
我正在寻找一种算法,该算法构造了具有最大数量的所有节点的子集(所有采集节点的数量之和)。 必须采取根。
我搜索了解决方案,我找到了非常相似但不太有用的红黑树。
有关于此的任何想法吗?
答案 0 :(得分:1)
您尝试解决的问题称为maximum independent set problem应用于树。
作为提示,请考虑以下事项:
对于树的每个完整子树,在两种情况下考虑该子树的最佳解决方案 - 在解决方案中包含该节点的情况,以及从解决方案中排除该节点的情况。 / p>
使用动态编程:从树的叶子到树的根部工作。
希望这有帮助!