【发布时间】:2009-02-08 11:21:27
【问题描述】:
问题如下:
给定一组正整数 { a1 , a2 , a3 , ... , an },其中没有相同的数字(a1 只存在一次,a2 只存在一次,...)例如 A = { 12 , 5 ,7 ,91 }。 问题:是否存在 A 的两个不相交子集 A1 = { b1,b2,...,bm } 和 A2 = { c1,c2,...,ck} 使得 b1+b2+...+bm = c1+ c2+...+ck ?
注意以下几点:A1 和 A2 不是必须覆盖 A,因此问题不会自动归结为子集和问题。 例如 A = {2,5,3,4,8,12} A1= {2,5} 所以 A1 的总和是 7 A2= {3,4} 所以 A2 的总和是 7 我们找到了具有所描述属性的 A 的两个不相交的子集,因此问题解决了。
我该如何解决这个问题?我能比找到所有可能的(不相交的)子集、计算它们的总和并找到两个相等的总和更好吗?
感谢您的宝贵时间。
【问题讨论】:
标签: algorithm complexity-theory subset-sum