题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1248
也是一道裸的完全背包。。
就是注意背包的容量以及花费都为同样的,我 写为 c 数组。
增加熟练度。。
#include<iostream>
#include<cstring>
using namespace std;
int dp[10010];
int c[3] = {150,200,350};
int max (int a,int b)
{
return (a>b)?a:b;
}
int main ()
{
int n;
cin >> n;
while(n--)
{
int V;
cin >> V;
memset(dp,0,sizeof(dp));
for(int i = 0;i < 3;i++)
{
for(int j = c[i];j <= V;j++)
dp[j] = max(dp[j],dp[j-c[i]]+c[i]);
}
cout << V-dp[V] << endl;
}
return 0;
}