背包问题
import java.util.Scanner;
public class 入学考试 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();//限定时间
int M = in.nextInt();//山洞的草药数目
int[][] Herb = new int[M+1][T+1];
int[] Time = new int[M+1];//时间
int[] Value = new int[M+1];//价值
int s=0;
while(s<M) {
Time[s] = in.nextInt();
Value[s] = in.nextInt();
s++;
in.nextLine();
}
for(int i=1;i<M+1;i++) {
for(int j=0;j<T+1;j++) {
Herb[i][j] = Herb[i-1][j];
if(j>=Time[i]) {
Herb[i][j] = Math.max(Herb[i-1][j], Herb[i-1][j-Time[i]]+Value[i]);
}
}
}
in.close();
System.out.println(Herb[M][T]);
}
}
第一次写文章,若有大神发现任何问题,请不吝赐教,感谢!