题目描述
有n中面值的货币,每种有无限个,问组成m的方案总数?
f1-xxx |
完全背包求方案数
- 完全背包裸题
代码
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
const int MAX_M = 3000;
LL f[MAX_M + 10];
int n, m;
int main()
{
scanf("%d%d", &n, &m);
f[0] = 1;
while (n--)
{
int v;
scanf("%d", &v);
for (int j=v; j <= m; j ++)
f[j] += f[j - v];
}
printf("%lld", f[m]);
return 0;
}
总结
- 注意求和会爆int,定义方案数组以及打印的时候对long long 怎么处理