题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1248
题目大意:中文题目
解题思路:简单的完全背包问题。
AC代码:
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int T;
int n;
int price[]={150,200,350};
int dp[10005];
while(cin>>T)
{
while(T--)
{
memset(dp,0,sizeof(dp));
cin>>n;
for(int i=0;i<3;i++)
{
for(int j=price[i];j<=n;j++)
{
if(dp[j-price[i]]+price[i]>dp[j])
dp[j] = dp[j-price[i]]+price[i];
}
}
cout<<n-dp[n]<<endl;
}
}
return 0;
}