模板题, 只要会01背包,就做的出来。
package com.Hdu.DP;
import java.util.Scanner;
public class Hdu1248 {
static int[] f = new int[10000];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T;
int N;
int[] w = new int[3];
w[0] = 150;
w[1] = 200;
w[2] = 350;
while(sc.hasNext()) {
T = sc.nextInt();
while(T > 0) {
T --;
N = sc.nextInt();
for (int i = 0; i < 3; i++) {
for(int j = w[i]; j <= N; j++ ) {
f[j] = Max(f[j - w[i]] + w[i], f[j]);
}
}
System.out.println(N - f[N]);
f = new int[10000];
}
}
sc.close();
}
public static int Max(int a, int b) {
return a > b ? a : b;
}
}