01pakage.java
来源:互联网 发布:楼梯踏步高度算法 编辑:程序博客网 时间:2024/06/05 05:13
package A类有价值的回顾的;import java.util.Scanner;//给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个.//输入的第一行包含两个整数n, m,分别表示物品的个数和背包能装重量。//以后N行每行两个数Wi和Vi,表示物品的重量和价值public class _01pakage { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt();//背包重量 int[] w = new int[n+1]; //如果是实际情况要注意这里要n+1,否则当然会数组越界 int[] v = new int[n+1]; int[][] sumv = new int[n+1][m+1];//建立一个状态量,选到第i个是背包容量为j时的最优解 for(int i=1;i<=n;i++){//照实际情况来做吧 w[i] = sc.nextInt(); v[i] = sc.nextInt(); } //挑到第i个物品时且背包限制容量为j时的最优解 只与第i-1个物品的最优解有关,将第i个物品在各种容量下的最优解都求出来,以备以后使用 for(int i=1;i<=n;i++){ for(int j=0;j<=m;j++){ if(w[i] <= j){ sumv[i][j] = Math.max(sumv[i-1][j], v[i]+sumv[i-1][j-w[i]]); //当前的物体最优价值就 等于 取最大 <前一个最优 (不取当前物体 或者 取当前的物体再加上 剩下的容量取最优)> } else sumv[i][j] = sumv[i-1][j]; } } System.out.println(sumv[n][m]); }}
阅读全文
0 0
- 01pakage.java
- java Pakage
- Java pakage和接口
- Java bindshell/reverseshell pakage
- pakage,import
- python pakage
- 新浪sso pakage 的问题
- this,static关键字和包pakage
- Sublime Text2篇之注册及Pakage Control的安装
- Android开发:SDK无法正常下载Pakage(SDK与ADT更新,开发环境搭建)
- dpkg error: package `x' contains empty filename 和 pakage missing 解决办法...
- java-01
- Java 01
- Java-01
- java 01
- Java基础01-java基础知识
- 【JAVA基础01】初识java
- java基础01-java历史
- ORACLE如何返回结果集
- Redis集群管理之Redis Cluster集群节点增减
- 第七届蓝桥杯参赛经历回顾
- JAVA IO 之多线程下载
- 怎样使用简单的IO流
- 01pakage.java
- WebSphere 6.0 000000e TimeoutManage I WTRN0006W 事务超时,解决方案
- alias vi=`vim`
- GCD 时间源小例
- pat 1001
- PAT 1002
- AVLTreeTest.java
- 图的邻接矩阵和邻接表的比较
- PAT 1006