description
给定n种物品和一个背包。物品i的重量是wi,价值为vi,背包的容量为C。问:应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两个选择:装入或不装入。不能将无物品i装入多次,也不能只装入部分物品。且不能重复装入。
接下来的n行,每行有两个数据,分别表示第i(1≤i≤n)件物品的重量和价值
给定n种物品和一个背包。物品i的重量是wi,价值为vi,背包的容量为C。问:应如何选择装入背包中的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有两个选择:装入或不装入。不能将无物品i装入多次,也不能只装入部分物品。且不能重复装入。
input
第一行为n值,表示n件物品接下来的n行,每行有两个数据,分别表示第i(1≤i≤n)件物品的重量和价值
最后一行为c值,表示背包容量
output
输出装入背包中物品的最大总价值
import java.util.Scanner;
public class ZeroOne {
public static void main(String args[]){//输入数据
Scanner input = new Scanner(System.in);
int W=0,n=0;
int bestp[]=new int[1]; bestp[0]=0;
int P=0,c=0,cw=0,cp=0;
n = input.nextInt();
c = input.nextInt();
int p[] = new int[n+1], w[] = new int[n+1],add[]=new int[n+1];
int px[] = new int[n+1], wx[] = new int[n+1];
double mid[] = new double[n+1];
for(int i=1;i<=n;i++){
p[i]=input.nextInt();
}
for(int i=1;i<=n;i++){
w[i]=input.nextInt();
}//回溯法求其中一个最优解
for(int i=1;i<=n;i++)