背包问题-背包01-苹果

来源:互联网 发布:南京听说科技软件破解 编辑:程序博客网 时间:2024/04/27 23:41
package 动态规划.背包01;
import java.util.Scanner;


public class 苹果 {
static class Apple {
public int c;
public int w;


public Apple(int c, int w) {
this.c = c;
this.w = w;
}


}


public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
int n = sc.nextInt();
int v = sc.nextInt();
if (n == 0 && v == 0)
break;
Apple[] apple = new Apple[n];
for (int i = 0; i < n; i++) {
apple[i] = new Apple(sc.nextInt(), sc.nextInt());
}
int[] dp = new int[v + 1];
for (int i = 0; i < n; i++) {
for (int j = v; j >= apple[i].c; j--) {
dp[j] = Math.max(dp[j], dp[j - apple[i].c] + apple[i].w);
}
}
System.out.println(dp[v]);


}
}


}
0 0
原创粉丝点击