我有一个子集算法,可以找到给定集合的所有子集。原始集合的东西是它是一个不断增长的集合,如果元素被添加到它,我需要再次重新计算它的子集。
有没有办法可以优化可以从上一个计算点重新计算子集的子集算法,而不是一次又一次地计算整个事物。
authentication
答案 0 :(得分:1)
当然,你只需要将相同的算法应用于每个先前生成的元素到额外的集合(只有增长的部分)
前:
如果生成的子集是s1, s2, ... , sn
,您的设置从a1a2a3
增长到a1a2a3a4a5
您需要将子集迭代到额外添加的集合:
for set x in subsets do :
generate(x)
generate(x + a4)
generate(x + a5)
Btw 我看到你添加了动态编程标签,但我不认为这是一个dp问题,因为dp主要用于需要最大化/最小化/计数子集的问题,但是没有生成他们自己的子集。