卬高杯
`dp[ i ][ w ] = \max(dp[i-1][w],dp[i-1][w-Y_i]+X_i)`
#include<bits/stdc++.h>
using namespace std;
int main(){
int N,M;
cin >> N >> M;
vector<int> X(N),Y(N);
for(int i = 0;i < N;i++) cin >> X[i];
for(int i = 0;i < N;i++) cin >> Y[i];
vector<vector<int>> dp(N+1,vector<int>(M,0));
for(int i = 1;i <= N;i++){
for(int j = 0;j < M;j++){
if(j>=Y[i-1]) dp[i][j]=max(dp[i-1][j],dp[i-1][j-Y[i-1]]+X[i-1]);
else dp[i][j]=dp[i-1][j];
}
}
cout << dp[N][M-1] << endl;
}