#include<iostream>
#include<stdio.h>
using namespace std;
void Knapsack(int n,int c,int *w,int *p){
int f[100][100];
int i=0,j=0;
for(i=1;i<=n;i++){
for(j=1;j<=c;j++){
f[i][j]=f[i-1][j];
if(j>=w[i]){
f[i][j]=max(f[i-1][j],f[i-1][j-w[i]]+p[i]);
}
}
}
cout<<"背包能装的最大价值是:" << f[i-1][j-1] <<endl;
}
int main(){
int n;
int c;
int w[100];
int p[100];
cout << "请输入背包容量c:"<< endl;
cin >>c;
cout <<"请输入物体个数n:"<<endl;
cin >>n;
for(int i=1;i<=n;i++)
{
cout<<"请输入物重w["<<i<<"]:"<<endl;
cin >> w[i];
}
for(int i=1;i<=n;i++)
{
cout<<"请输入物价p["<<i<<"]:"<<endl;
cin >> p[i];
}
c=10;
n=5;
int w[6]={0,2,2,6,5,4};
int p[6]={0,6,3,5,4,6};
Knapsack(n,c,w,p);
}
————————————————
版权声明:本文为CSDN博主「千篇不一律」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https: