0-1背包 (DP)
来源:互联网 发布:腾讯免费企业邮箱域名 编辑:程序博客网 时间:2024/05/17 22:38
算法提高 01背包
时间限制:1.0s 内存限制:256.0MB
问题描述
给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个.
输入格式
输入的第一行包含两个整数n, m,分别表示物品的个数和背包能装重量。
以后N行每行两个数Wi和Vi,表示物品的重量和价值
输出格式
输出1行,包含一个整数,表示最大价值。
样例输入
3 5
2 3
3 5
4 7
样例输出
8
数据规模和约定
1<=N<=200,M<=5000.
即dp[i][j]表示前i件物品恰放入一个重量为j的背包可以获得的最大价值。则其状态转移方程为:
dp[i][j]=max{dp[i-1][j],c[i-1][m-w[i]]+p[i]} (放与不放)
import java.util.*;class Main{ 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]; int[] p=new int[n+1]; for(int i=1;i<=n;i++) { w[i]=sc.nextInt(); p[i]=sc.nextInt(); } int[][] dp=new int[n+1][m+1]; for(int i=1;i<=n;i++) { for(int j=0;j<=m;j++) { if(j>=w[i]){ dp[i][j]=Math.max(dp[i-1][j], dp[i-1][j-w[i]]+p[i]); }else { dp[i][j]=dp[i-1][j]; } } } System.out.println(dp[n][m]); }}
1 0
- 0-1背包 (DP)
- 0-1背包问题 | DP
- 0/1 背包 dp问题
- DP 0-1背包问题
- 0-1背包问题(DP)
- 简单背包问题+0/1背包问题+DP
- 0-1背包—DP、暴力、贪心
- 0—1背包问题(dp)
- hdu 2955 dp(0,1背包) Robberies
- 入门经典 DP 0-1背包问题
- hdu 2546 dp背包0-1
- 采药---0-1背包型dp
- 第一道dp 0-1背包 (饭卡)
- UESTC1218 2015CCPC DP 0,1背包
- 0-1背包(DP经典问题)
- 动态规划DP入门 0-1背包
- DP总结(1) 01背包 完全背包 多重背包
- poj 3624 Charm Bracelet(0-1背包~DP~)
- bzoj 1190: [HNOI2007]梦幻岛宝珠 动态规划
- 使用sed修改配置文件中配置项的值
- 我的OpenCV学习笔记(20):提取元素的轮廓及形状描述子
- Android Studio导入.so文件
- Ubuntu 下安装IT++(itpp)源码编译版
- 0-1背包 (DP)
- cmd 好像把()中的语句当作一行处理
- Java对象结构及大小计算
- comboBox1.SelectedText为何是空值?
- oracle exp空表
- python 列表list 元组tuple 字典dict 集合set 介绍
- tomcat+myeclipse配置远程调试详细讲解
- 数据库备份注意事项
- 谈PHP中信息加密技术