每次maxv的值都会更新为4个叶子节点的各个价值v,最后运行的结果是0,请问这个要怎么改
#include <iostream>
#define MAXN 20
using namespace std;
int n,V; //n个物品,箱子容量为V
int vol[40],v[40]; /7ol代表体积,v代表物品价值
int maxv=0; //存放最优解的总价值
int x[MAXN]; //存放最优解
void DFS(int i,int tvol,int tv,int op[])
{
if(i>n) //用的是排列树的解法,找到了一个叶子节点
{
cout<<maxv<<"jhcdsc"<<endl;
if(tv>=maxv&&tvol<=V)
{
cout<<tv<<" "<<maxv<<endl;
maxv=tv;
for(int j=1;j<=n;j++)
x[j]=op[j];
}
}
else //尚未找完所有的物品
{
op[i]=1; //尝试把第i个物品放进箱子里面
maxv+=v[i];
DFS(i+1,tvol+vol[i],tv+v[i],op);
op[i]=0; //不把第i个物品放进箱子
maxv-=v[i];
DFS(i+1,tvol,tv,op);
}
}
dispasolution()
{
cout<<maxv<<endl;
}
int main()
{
int op[MAXN]; //存放临时解
cin>>V>>n;
for(int i=1;i<=n;i++)
{
cin>>vol[i]>>v[i];
}
DFS(1,0,0,op); //开始时体积和价值都是0
dispasolution();
}
```c++
cout<<maxv<<"jhcdsc"<<endl;
这个“jhcdsc”是用来干嘛的?
应该是这里出错了
```