01背包的模版是这样的:
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(v[i]>j){
f[i][j]=f[i-1][j];
}
else{
f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+w[i]);
}
}
}
那为什么有的时候是这样的:
for(int i=1;i<=n;i++){
for(int j=v[i];j<=m;j++){
if(v[i]>j){
f[i][j]=f[i-1][j];
}
else{
f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+w[i]);
}
}
}