完全背包,重在理解
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int dp[40000];
int num[4]= {0,150,200,350};
int main()
{
int i,j,n,C;
cin>>n;
while(n--)
{
cin>>C;
memset(dp,0,sizeof(dp));
for(int i=1; i<=3; i++)
for(int c=num[i]; c<=C; c++)
dp[c] = max(dp[c],dp[c-num[i]]+num[i]);
printf("%d\n",C-dp[C]);
}
return 0;
}