请帮忙看一下这道题怎么回事,没有错误但是运行不了。 10

/*给定n种物品和一个容量为C的背包,物品i的重量是wi,其价值为vi,0/1背包问题是如何选择装入背包的物品(物品不可分割),使得装入背包中物品的总价值最大?*/#in... /*给定n种物品和一个容量为C的背包,物品i的重量是wi,其价值为vi,
0/1背包问题是如何选择装入背包的物品(物品不可分割),
使得装入背包中物品的总价值最大?*/
#include<iostream>
using namespace std;
int Weight;
int n;
int w[100];
int p[100];
int bestP=0;
int cp=0;
int cw=0;
int b[100];
void BackTrack(int i)
{
if(i>n)
{
cout<<"背包获得最大价值为:"<<cp<<endl;
cout<<"解向量为:";
/*

for(int d=1;d<=n;d++)
{
cout<<b[d];
}
cout<<endl;
*/
if(bestP<cp)
bestP=cp;
}
if((cw+w[i])<=Weight)
{
b[i]=1;
cw=cw+w[i];
cp=cp+p[i];
BackTrack(i+1);
cw=cw-w[i];
cp=cp-p[i];
}
b[i]=0;
BackTrack(i+1);
}
void main()
{

cout<<"请输出物品的个数:"<<endl;
cin>>n;
cout<<"请输出各物品的重量:"<<endl;
for(int i=1;i<=n;i++)
{
cin>>w[i];
}
cout<<"请输出各物品的价值:"<<endl;
for( i=1;i<=n;i++)
{
cin>>p[i];
}
cout<<"请输入背包的容量:"<<endl;
cin>>Weight;
for(int h=1;h<=n;h++)
{
b[h]=0;
}
BackTrack(1);
}
展开
 我来答
x1241299590
2013-05-03 · 超过14用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:35.5万
展开全部
程序本身做法都是错的,怎么能运行出来,重新写一边吧
追问
不能详细点吗?不懂,我是照着书上写的啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式