lightoj1232_完全背包
Posted _lm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lightoj1232_完全背包相关的知识,希望对你有一定的参考价值。
题目链接:http://lightoj.com/volume_showproblem.php?problem=1232
题意: 给出n种硬币的币值,每种硬币最多有k个,问用这n种硬币组成k的方案数
1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cstdio> 6 #include <vector> 7 #include <ctime> 8 #include <queue> 9 #include <list> 10 #include <set> 11 #include <map> 12 using namespace std; 13 #define INF 0x3f3f3f3f 14 #define mod 100000007 15 typedef long long LL; 16 17 int val[105], num[105], dp[10005]; 18 int main() 19 { 20 int t, n, k; 21 scanf("%d", &t); 22 for(int ca = 1; ca <= t; ca++) 23 { 24 scanf("%d %d", &n, &k); 25 for(int i = 1; i <= n; i++) 26 scanf("%d", &val[i]); 27 memset(dp, 0, sizeof(dp)); 28 dp[0] = 1; 29 for(int i = 1; i <= n; i++) 30 { 31 for(int j = val[i]; j <= k; j++) 32 { 33 dp[j] = (dp[j] + dp[j - val[i]]) % mod; 34 } 35 } 36 printf("Case %d: %d\n", ca, dp[k]); 37 } 38 return 0; 39 }
以上是关于lightoj1232_完全背包的主要内容,如果未能解决你的问题,请参考以下文章
LightOJ 1079 Just another Robbery (01背包)