【发布时间】:2015-12-24 05:35:55
【问题描述】:
给定一个整数 n 和 s 大小不同的集合,但以从 0 到 s_i 的正升序数字作为元素。让一个好的总和在这里定义为a_1 + a_2 + ... + a_s = n。计算存在多少总和,当您从对应的集合 s_i 中为每个 a_i 取一个元素时。
我试图生成任何可能的方式并省略那些可省略的方式,即当你有例如s=3、n=1 并且给你集合s_0={0,1}、s_1={0,1,2,3}、s_2={0,1,2},那么你可以省略检查总和 0 + 0 + a_3,因为 a_3 不够大。
我已经为每个可能的序列应用了正常子集和的动态编程解决方案,但是,我得到的结果比我应该得到的要大得多,而且速度也很慢。
有什么好的算法可以在这里应用吗?
【问题讨论】:
标签: algorithm dynamic-programming subset-sum