本文主要是介绍01背包 Java 动态规划,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
01背包 动态规划
import java.util.Scanner;//01背包
public class Pag01 {public static void main(String[] args) {Scanner input=new Scanner(System.in);int m=input.nextInt(); //背包的容积int n=input.nextInt(); //物品的数量 int[] v=new int[n+1]; //物品的体积int[] w=new int[n+1]; // 物品价值for (int i = 1; i < w.length; i++) {v[i]=input.nextInt();w[i]=input.nextInt();}input.close();computer(m, n, w, v);}public static void computer(int m,int n,int[] w,int[] v){int[][] c=new int[n+1][m+1] ;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {if(v[i]<=j){c[i][j]=c[i-1][j]>c[i-1][j-v[i]]+w[i]?c[i-1][j]:c[i-1][j-v[i]]+w[i];}else{c[i][j]=c[i-1][j];}}}System.out.println(c[n][m]);}
}
这篇关于01背包 Java 动态规划的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!