P2347 砝码称重
一个很水的背包
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n;
int dp[10001];
int num[10001];
int pa[10001];
int x;
int l;
int sum[8]={1,2,3,5,10,20};
int Aimee;
int main(){
for(int i=1;i<=6;++i){
scanf("%d",&x);
for(int j=1;j<=x;++j){
pa[++l]=sum[i-1];
}
}
dp[0]=1;
for(int i=1;i<=l;++i){
for(int j=1000;j>=pa[i];--j){
dp[j]=max(dp[j],dp[j-pa[i]]);
}
}
for(int i=1;i<=1000;++i){
Aimee+=dp[i];
}
cout<<"Total="<<Aimee<<endl;
return 0;
}