摘要:题意很简单, 有n种硬币,每种硬币面额多大,有多少个,求可以构成m以内的面额有多少种。开始用的是普通的多重背包的求法,裸裸的超时了,看了别人的代码,发现可以优化很多。用usea这个来存储用来多少个a硬币,避免的很多无用的计算。先贴以前超时的代码#include #include int dp[100005];int coin[101];int cnt[101];int used[1000101];int main(){ int n, k; while(scanf("%d %d", &n, &k)) { if (n==0 && k==0) b.
阅读全文