循环层顺序有什么要求
for(int i=1;i<=n;i++) for(int j=m;j>=0;j--) for(int k=1;k<=s&&a[i][k]<=j;k++) f[j]=max(f[j],f[j-a[i][k]]+i*k);
与这样:
for(int i=1;i<=n;i++) for(int k=1;k<=s;k++) for(int j=m;j>=a[i][k];j--) { f[j]=max(f[j],f[j-a[i][k]]+i*k); 有什么区别?