public class Test { public static void main(String[] args) { int[][] f =new int[5][9]; // f[i][j]表示前i件物品,背包容量为j的最大价值 int[]w=new int[]{0,2,3,4,5}; //重量 int[]v=new int[]{0,6,10,12,15}; //价值
for(int i=1;i<5;i++) { for(int j=1;j<9;j++) { if(w[i]>j) { f[i][j]=f[i-1][j]; }else { f[i][j]=Math.max(f[i-1][j],f[i-1][j-w[i]]+v[i]); } } } for (int i = 0; i < 5; i++) { for (int j = 0; j < 9; j++) { System.out.print(f[i][j]+" "); } System.out.println(); }
评论列表(0条)