背包九讲之0-1背包问题 滑动数组实现 Java实现
来源:互联网 发布:张国荣热门知乎 编辑:程序博客网 时间:2024/06/08 06:18
package fenshujs;
import java.util.Arrays;
import java.util.Scanner;
/*
*背包九讲之一:01背包问题
*/
public class bishi {
//滚动数组实现,也就是最简单的那种
public static void backbag(int n,int v,int[] c,int[] w)
{
/* */ int[] a = new int[v+1];
for(int i = 0;i<n;i++)
{
for(int j = v;j>=0;j--)
{
if(j-c[i]>=0&&a[j]<a[j-c[i]] + w[i])
{
a[j] = a[j-c[i]] + w[i];
}
}
}
System.out.println(a[v]);
/* int[][] a = new int[n][v];
for(int i = 0;i<n;i++)
for(int j = 0;j<v;j++)
{
if(0 == i)
{
a[i][j] = w[i];
}
else if(j>=c[i]&&a[i-1][j]<a[i-1][j-c[i]]+w[i])
{
a[i][j] = a[i-1][j-c[i]]+w[i];
}
else
{
a[i][j] = a[i-1][j];
}
}
System.out.println(a[n-1][v-1]);
*/
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int v = sc.nextInt();
int[] c = new int[n];//每一个物品占用体积
int[] w = new int[n];//每一个物品的价值
for(int i = 0;i<n;i++)
{
//依次输入一个物品的体积价值
c[i] = sc.nextInt();
w[i] = sc.nextInt();
}
backbag(n,v,c,w);/**/
}
}
import java.util.Arrays;
import java.util.Scanner;
/*
*背包九讲之一:01背包问题
*/
public class bishi {
//滚动数组实现,也就是最简单的那种
public static void backbag(int n,int v,int[] c,int[] w)
{
/* */ int[] a = new int[v+1];
for(int i = 0;i<n;i++)
{
for(int j = v;j>=0;j--)
{
if(j-c[i]>=0&&a[j]<a[j-c[i]] + w[i])
{
a[j] = a[j-c[i]] + w[i];
}
}
}
System.out.println(a[v]);
/* int[][] a = new int[n][v];
for(int i = 0;i<n;i++)
for(int j = 0;j<v;j++)
{
if(0 == i)
{
a[i][j] = w[i];
}
else if(j>=c[i]&&a[i-1][j]<a[i-1][j-c[i]]+w[i])
{
a[i][j] = a[i-1][j-c[i]]+w[i];
}
else
{
a[i][j] = a[i-1][j];
}
}
System.out.println(a[n-1][v-1]);
*/
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int v = sc.nextInt();
int[] c = new int[n];//每一个物品占用体积
int[] w = new int[n];//每一个物品的价值
for(int i = 0;i<n;i++)
{
//依次输入一个物品的体积价值
c[i] = sc.nextInt();
w[i] = sc.nextInt();
}
backbag(n,v,c,w);/**/
}
}
5 20 3 4 4 5 1 2 4 3 5 6
20
阅读全文
0 0
- 背包九讲之0-1背包问题 滑动数组实现 Java实现
- 背包九讲之完全背包问题 Java实现 滑动数组
- 背包九讲之0-1背包 Java实现
- 背包九讲之01背包问题
- 背包九讲之完全背包问题
- 背包九讲之混合背包问题
- 背包九讲之分组背包问题
- 背包九讲——0-1背包问题
- 背包问题:背包九讲
- 背包问题 01背包详解及其实现 空间压缩技术 对应于背包九讲之一
- 动态规划-背包问题九讲及其代码实现
- 背包问题九讲
- 背包问题九讲
- 背包问题九讲
- 背包问题九讲
- 背包问题九讲
- 背包问题九讲
- 背包问题九讲
- 1126. Eulerian Path (25)
- hadoop HDFS文件系统的特征
- u-boot移植
- Windows7系统中IPython Notebook的安装
- Class类文件的结构
- 背包九讲之0-1背包问题 滑动数组实现 Java实现
- 常用的数据库查询语句
- find locate whereis which type
- jQuery中获取三个高度方法
- java设计模式
- HDU 3555(数位dp)
- POJ – 1503 Integer Inquiry Integer Inquiry
- weka源码调试libSVM出现libsvm classes not in CLASSPATH
- HTML-图片、音频、视频链接