回溯递归解决背包问题
回溯递归解决背包问题 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]); }