01 背包问题
题目描述:
题目分析:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int v = in.nextInt();
int []arrv = new int [n+1];
int []arrw = new int [n+1];
for(int i=1;i<=n;i++) {
arrv[i]=in.nextInt();
arrw[i]=in.nextInt();
}
int [][] re = new int [n+1][v+1];
for(int i=1;i<=n;i++) {
for(int j=1;j<=v;j++) {
// not select i goods
re[i][j]=re[i-1][j];
// select i goods
if(j>=arrv[i]) {
re[i][j]=Math.max(re[i-1][j-arrv[i]]+arrw[i],re[i][j] );
}
}
}
System.out.println(re[n][v]);
}
}