01背包问题
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、问题描述
题目描述
给定n种物品和一个背包,物品i的重量是Wi,其价值为Vi,背包的容量为C。如何选择装入背包的物品,可以使得装入背包中物品的总价值最大?
输入
每组输入包括三行,第一行包括物品个数n,以及背包容量C。 第二、三行包括两个一维数组,分别为每一种物品的价值和重量。
输出
输出包括两行,第一行为背包的最大总价值,第二行为所选取的物品。 例如:最大总价值=15,物品选取策略为11001。
样例输入
5 10
6 3 5 4 6
2 2 6 5 4
样例输出
15
11001
二、代码
代码如下:
import java.util.*;
public class Main {
public static void main(String[] args)
{
Scanner in =new Scanner(System.in);
while(in.hasNext()){
int n=in.nextInt();
int c=in.nextInt();
int v[]=new int[n+1];
int w[]=new int[n+1]