hdu 1248 寒冰王座(完全背包)
#include <stdio.h>
#include <string.h>
//#include <stdlib.h>
//#define MAXN 105
#define MAXM 10005
const int weight[3] = { 150, 200, 350 };
int n, f[MAXM];
inline int getMax(int a, int b)
{
return a > b ? a : b;
}
inline void CompletePack(int w, int v)
{
for(int j = w; j <= n; j++)
{
f[j] = getMax(f[j], f[j - w] + v);
}
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("indata.txt", "r", stdin);
#endif
int T;
scanf("%d", &T);
while(T--)
{
scanf("%d", &n);
memset(f, 0, sizeof(*f) * (n + 1));
int i;
for(i = 0; i < 3; i++)
{
CompletePack(weight[i], weight[i]);
}
printf("%d\n", n - f[n]);
}
return 0;
}
浙公网安备 33010602011771号