題目:
貪心地想,1、如果一種面值已經可以被組成,則不再對它更新;
2、對於同一種面值的硬幣,盡量用較少硬幣(乙個)更新,使後面可以用更多此面值硬幣。
**如下:
#include#include#include
using
namespace
std;
int n,a[105],c[105],m,used[100005
],ans;
bool f[100005
];int
main()
}for(int i=1;i<=m;i++)
if(f[i])ans++;
printf(
"%d\n
",ans);
}return0;
}
POJ 1742多重揹包問題
include include include include includeusing namespace std define maxn 105 define maxl 100005 int weight maxn c maxn f maxl user maxl int main printf ...
poj 1742 多重揹包(單調佇列)
如題 又是這道題 第一種方法是二進位制拆分多重揹包 能過hdu2488 見我這一篇 第二種是為了減小時間複雜度,通過改變dp策略 能過poj1742 不能過杭電 這裡說第三種,多重揹包的0 vn 複雜度演算法。使用了單調佇列。這位大牛寫的很清楚 也就是找出狀態轉移方程中的重複狀態,然後將容量拆成v拆...
POJ1742 動態規劃 多重揹包
題意 問多重部分和能否恰好等於m。思路 dp i j 用前i種面額硬幣湊成j後,第i種硬幣最多剩下的個數,若湊不成則為 1.可優化空間複雜度。反思 想不出應該如此定義dp陣列。include using namespace std int a 100 10 int c 100 10 int dp 1...