33,008
社区成员
发帖
与我相关
我的任务
分享
void find(int i , double tw , double tv)
{
int k;
if( tw + a[i].weight <= MAXWEIGHT) //选择I到当前方案
{
...
find( i + 1 , tw + a[i].weight , tv); // 这里tv总价值我的理解选择i时,推倒到i-1时候
//应该find( i + 1, tw+a[i].weight , tv - a[i].value)
...
}
if(tv - a[i].value > maxv)
{
...
find(i + 1 , tw , tv - a[i].value);//这里我觉得是 find(i + 1, tw, tv);
...
}
}