https://vjudge.net/problem/POJ-1742
多重部分和,常规dp超时
超时思路 : 枚举每一种硬币,如果合理则bool数组为1
超时代码:
#include
#include
#include
#include
#include
#include
#include
尝试使用了一维滚动数组进行空间优化
但是发无论怎样结果都等于m,究其原因是因为未对硬币数目进行有效的控制,导致同一种硬币无限枚举
wa代码:
#include
#include
#include
#include
#include
#include
#include
参阅白书,看到了另一种优化,同样化为一维数组,但是不是bool数组,用int数组保存当前硬币剩余数目,这样同时实现了空间和时间的优化(把第三维的枚举优化到了int数组的数值中),原来一开始就被误导用了bool数组啊。。
排除一切不合理,剩下的就是合理啦
AC代码:
#include
#include
#include
#include
#include
#include
#include