背包思想
多种物品,每种物品有多个
题目链接
ACcode
#include<bits/stdc++.h>
using namespace std;
int a[8] = { 0,1,2,3,5,10,20 };
int b[8];
int dp[1001];
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
for (int i = 1;i <= 6;i++)cin >> b[i];
dp[0] = 1;
for (int i = 1;i <= 6;i++) {
for (int k = 1;k <= b[i];k++) {
for (int j = 1000;j >= 0;j--) {
if (dp[j] && j + a[i] <= 1000) {//判断组成重量是否合法
dp[j + a[i]] = 1;
}
}
}
}
int ans = 0;
for (int i = 1;i <= 1000;i++) {
if (dp[i])ans++;
}
cout << "Total=" << ans;
return 0;
}