Java——0/1背包
来源:互联网 发布:centos 英伟达 编辑:程序博客网 时间:2024/06/07 06:28
0/1背包
题目描述
一个旅行者有一个最多能用 m 公斤的背包,现在有 n 件物品,它们的重量分别是 W1 ,W2 ,... , Wn ,它们的价值分别为 C1,C2 ,... ,Cn 。若每种物品只有一件求旅行者能获得最大总价值。
输入格式
第 1 行:两个整数,M(背包容量,M≤200)和 N(物品数量,N≤30)。
第 2..N+1 行:每行二个整数 Wi,Ci,表示每个物品的重量和价值。
输出格式
仅一行,一个数,表示最大总价值。
样例数据 1
输入
10 4
2 1
3 3
4 5
7 9
输出
12
import java.util.*; public class Main { public static void main(String[] args) { int n,m; int [] w=new int[31]; int [] c=new int[31];int [][] f=new int[31][201];m=0;n=0; Scanner input = new Scanner(System.in); m=input.nextInt(); n=input.nextInt(); for(int i=1;i<=n;i++) { w[i]=input.nextInt(); c[i]=input.nextInt(); } for(int i=1;i<=n;i++) for(int v=m;v>0;v--) if(w[i]<=v) if(f[i-1][v]>(f[i-1][v-w[i]]+c[i])) f[i][v]=f[i-1][v]; else f[i][v]=f[i-1][v-w[i]]+c[i]; else f[i][v]=f[i-1][v]; System.out.println(f[n][m]);} }
阅读全文
0 0
- Java——0/1背包
- 背包问题——0-1背包
- 贪心法和回溯法 求解“背包、0/1背包问题”——Java 实现
- 背包问题(1)——01背包、完全背包、多重背包、混合三种背包问题
- 背包问题总结第二讲——0-1背包
- 背包九讲——0-1背包问题
- 简单背包练习——0/1背包
- java 0-1背包问题
- 0-1背包回溯【Java】
- Java——完全背包
- 0—1背包问题
- NOJ1004 0—1背包
- 背包九讲之0-1背包 Java实现
- 背包九讲系列1——01背包、完全背包、多重背包
- 0/1背包问题的动态规划法求解 —— Java 实现
- 0/1背包问题的动态规划法求解 —— Java 实现
- (基于Java)算法之动态规划——0-1背包问题
- 0/1背包问题的动态规划法求解 —— Java 实现
- 科学计数法
- 为oracle数据库新增表空间及用户
- 多线程基础
- 利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱)
- 【Linux】Linux中常用操作命令
- Java——0/1背包
- Exception in thread "main" java.lang.NoClassDefFoundError解决
- 电工实验室基础生存技能第一季第二集
- 巧用这五招提升Discuz!论坛运行速度
- 20170703
- 多线程基础 、 TCP通信
- F1V3.0-图形-使用hibernate spatial 5对空间几何字段的映射
- 为什么要使用多线程?多线程的优点和缺点是什么?
- Gulp前端自动化工具