一本通 1291:数字组合
数字组合
01背包的变式。
#include <iostream>
#include <cstdio>
using namespace std;
//Mystery_Sky
//
#define ll long long
#define M 1000
int c[M], f[M];
int v, m;
int main() {
scanf("%d%d", &m, &v);
for(int i = 1; i <= m; i++) scanf("%d", &c[i]);
f[0] = 1;
for(int i = 1; i <= m; i++)
for(int j = v; j >= c[i]; j--)
f[j] += f[j-c[i]];
printf("%d\n", f[v]);
return 0;
}
做完这道题之后建议去做一做货币系统。
唯愿,青春不辜负梦想,未来星辰闪耀