http://acm.hdu.edu.cn/showproblem.php?pid=1248
入门水题~~
#include <iostream>
using namespace std;
struct pack
{
int v,c;
};
pack p[5];
int f[10010],maxv;
void cpack(pack p)
{
for(int i=p.c;i<=maxv;i++)
f[i]=max(f[i],f[i-p.c]+p.v);
}
int main()
{
int t;
int ans;
p[0].v=p[0].c=150;
p[2].v=p[2].c=350;
p[1].v=p[1].c=200;
cin>>t;
while(t--)
{
cin>>maxv;
memset(f,0,sizeof(f));
for(int i=0;i<3;i++)
cpack(p[i]);
ans=maxv-f[maxv];
cout<<ans<<endl;
}
return 0;
}