回溯递归解决背包问题
int temp_c,i,total_weight,num,j=0,result[1000],total_value;
scanf("%d%d",#,&temp;_c);
while(num!=0||temp_c!=0)
{
total_value=0;
total_weight=0;
for(i=0;i<=10;++i)
{
a[i]=0;
b[i]=0;
w[i]=0;
}
c=temp_c;
n=num;
for(i=0;i<num;++i)
{
scanf("%d",&w[i]);
total_weight+=w[i];
}
for(i=0;i<num;++i)
{
scanf("%d",&b[i]);
total_value+=b[i];
}
if(total_weight<=c)
result[j]=total_value;
else
{
best_value=0;
Sesearch(0,total_value-b[0],0,0);
result[j]=best_value;
}
scanf("%d%d",#,&temp;_c);
++j;
}
for(i=0;i<j;++i)
printf("%d\n",result[i]);
}