为什么我这样写就是对的
for(int j=1;j<m&&j*w<=W;j*=2){
cnt[++tt]=w*j;
val[tt]=v*j;
m-=j;
}
if(!m) continue;
cnt[++tt]=w*m;
val[tt]=v*m;
这样写就是错的:
for(int j=1;j<m&&j*w<=W;j*=2){
cnt[++tt]=w*j;
val[tt]=v*j;
sum+=j;
}
cnt[++tt]=w*(m-sum);
val[tt]=v*(m-sum);
为什么我感觉都可以。。