背包问题II
来源:互联网 发布:js防水施工工艺 编辑:程序博客网 时间:2024/05/16 09:22
给出n个物品的体积A[i]和其价值V[i],将他们装入一个大小为m的背包,最多能装入的总价值有多大?
A[i], V[i], n, m均为整数。你不能将物品进行切分。你所挑选的物品总体积需要小于等于给定的m。
样例
A[i], V[i], n, m均为整数。你不能将物品进行切分。你所挑选的物品总体积需要小于等于给定的m。
样例
对于物品体积[2, 3, 5, 7]和对应的价值[1, 5, 2, 4], 假设背包大小为10的话,最大能够装入的价值为9。
import java.util.Scanner;/** * * 给出n个物品的体积A[i]和其价值V[i],将他们装入一个大小为m的背包,最多能装入的总价值有多大?A[i], V[i], n, m均为整数。你不能将物品进行切分。你所挑选的物品总体积需要小于等于给定的m。样例对于物品体积[2, 3, 5, 7]和对应的价值[1, 5, 2, 4], 假设背包大小为10的话,最大能够装入的价值为9。 * @author Dell * */public class Test125 { public static int backPackII(int m,int[] A, int[] V) { int[][] dp=new int[A.length+1][m+1]; dp[0][0]=0; for(int i=1;i<=A.length;i++) { dp[i][0]=0; } for(int j=1;j<=m;j++) { dp[0][j]=0; } for(int i=1;i<=A.length;i++) { for(int j=1;j<=m;j++) { int x=dp[i-1][j]; int y=0; if(j>=A[i-1]) { y=dp[i-1][j-A[i-1]]+V[i-1]; } dp[i][j]=Math.max(x, y); } } return dp[A.length][m]; }public static void main(String[] args) {Scanner sc=new Scanner(System.in);int m=sc.nextInt();int n=sc.nextInt();int[] A=new int[n];int[] V=new int[n];for(int i=0;i<A.length;i++){A[i]=sc.nextInt();} for(int i=0;i<V.length;i++) { V[i]=sc.nextInt(); }System.out.println(backPackII(m,A,V));}}
阅读全文
0 0
- LintCode-背包问题 II
- 背包问题 II
- LintCode : 背包问题 II
- LintCode : 背包问题 II
- 背包问题 II
- LintCode:背包问题 II
- 背包问题 II
- 背包问题II
- lintcode--背包问题II
- 背包问题-Bone Collector II
- lintcode-背包问题II-125
- Java实现-背包问题II
- LintCode:M-背包问题 II
- LintCode刷题--背包问题 II
- LintCode 125. 背包问题 II
- 【LintCode】 Backpack II 背包问题II
- 125.Backpack II-背包问题 II(中等题)
- NOJ 1984 比赛现场气氛营造问题II (完全背包)
- Scala练习-选择排序
- TrainSimulator(Railworks)官方开发文档
- 8皇后问题的递归解决 java
- Android系统定制和源码开发以及源码编译
- mybaits中的一级缓存和二级缓存使用
- 背包问题II
- QColorDialog中Pick Screen Color无法翻译为中文的解决办法
- Jquery select2 AJAX获取json数据后无法选中
- win7 iis6部署网站怎么快速查看打开物理路径
- 第三方ORM框架GreenDao
- 正则表达式
- 深刻理解HDFS工作机制
- 正则表达式
- 数千个Android项目源码安卓游戏源码大全经典安卓项目附带源码(图片版)