//完全背包用优化DP做
//F[i] = max(F[v],F[N - C[i]] + C[i]);
//1a oms
#include <iostream>
#include <cstring>
using namespace std;
int F[10001];
int C[4];
int T;
int N;
int main()
{
C[1] = 150;
C[2] = 200;
C[3] = 350;
cin>>T;
while(T--)
{
cin>>N;
for(int i = 0; i <= N; i++)
{
F[i] = 0;
}
for(int i = 1; i <= 3; i++)
{
for(int j = C[i]; j <= N; j++)
{
F[j] = max(F[j],F[j - C[i]] + C[i]);
}
}
int feil = N - F[N];
cout<<feil<<endl;
}
return 0;
}
hdu 1248 完全背包
最新推荐文章于 2018-09-17 10:38:00 发布