用的是这个做法
code:
#include<bits/stdc++.h>
using namespace std;
int n,m;
long long v[2010],w[2010];
long long f[2010][2010];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>w[i];
}
int mx=0,mid;
for(int i=1;i<=n;i++){
cin>>v[i];
if(v[i]>=mx){
if(v[i]>mx){
mx=v[i];
mid=i;
}else{
if(w[i]>w[mid]){
mid=i;
}
}
}
}
w[mid]=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
f[i][j]=f[i-1][j];
if(j>=w[i]){
f[i][j]=max(f[i][j],f[i-1][j-w[i]]+v[i]);
}
}
}
cout<<f[n][m];
return 0;
}