现在的位置: 首页 > 综合 > 正文

背包、树的直径、集合划分

2012年02月29日 ⁄ 综合 ⁄ 共 265字 ⁄ 字号 评论关闭

实质都在于找到相应的递推关系。

对于n种物体k1-kn,大小为K的背包问题来说,递推关系是:P(n, K) = P(n-1, K) || P(n-1, K-kn),也即,根据当前物体kn是不是被选中,来二分。

对于树的直径问题,记f(t)为以节点t为根的子树的直径,h(t)为以节点t为根的子树的高度,则

f(t) = max{ f(left), f(right), h(left) + h(right) + 2 }

对于叶子节点,f与h均为0,则递归关系找到了。

对于集合的划分问题(一个整数集合,是否存在一种划分,使得两个子集合中元素的和相等),立刻可以转化为背包问题。

抱歉!评论已关闭.