一道简单的背包
就是01背包的变形
用一维数组dp[i]储存
当j>=cost[i]时,
当j<cost[i]时,
上代码好了
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
ll lose[10005],win[10005];
int n,x;
ll cost[10005];
ll dp[10005];
int main (){
ios::sync_with_stdio(false);
cin>>n>>x;
for(int i=1;i<=n;i++){
cin>>lose[i]>>win[i]>>cost[i];
}
for(int i=1;i<=n;i++)
for(int j=x;j>=0;j--){
if(j>=cost[i]){
dp[j]=max(dp[j]+lose[i],dp[j-cost[i]]+win[i]);
}else{
dp[j]+=lose[i];
}
}
cout<<dp[x]*5;
return 0;
}