好像就是个背包,也没啥 hh
看完题解好像不难hhh
但是和队友vp的时候没写出来
我太菜了
看完题解还debug了半天
#include<bits/stdc++.h>
using namespace std ;
long long dp [1005][1005] ;
long long h[1005] , s[1005] , w[1005] ;
int main () {
int n , hh , ss ;
cin >> n >> hh >> ss ;
for(int i =1 ;i<=n;i++) {
cin >> h[i] >> s[i] >> w[i] ;
}
for(int i = 1;i<=n;i++) {
for(int j = hh ; j > 0 ; j--) {
for(int k = ss; k >= 0 ;k -- ) {
if( j > h[i] && j + k > s[i] + h[i] && k < s[i] ) {
int cnt = s[i] - k ; // k 够用
dp[j][k] = max(dp[j][k],dp[j - h[i] - cnt ][0]+w[i]) ;
} else if(j > h[i] && k >= s[i] ) {
dp[j][k] = max(dp[j][k] , dp[j - h[i]][k - s[i]] + w[i] ) ; // k不够
}
}
}
}
cout<<dp[hh][ss]<<endl;
return 0 ;
}