P1802 5 倍经验日
#include<iostream> using namespace std; #define ll long long const int N=100010; int a[N][4]; ll ans[N][1010]; int main() { int n,x; cin>>n>>x; for(int i=0;i<n;i++) { for(int j=0;j<3;j++) { cin>>a[i][j]; } } for(int i=0;i<n;i++) { for(int j=0;j<=x;j++) { if(j-a[i][2]>=0){ ans[i][j]=max(ans[i-1][j]+a[i][0],ans[i-1][j-a[i][2]]+a[i][1]); } else{ ans[i][j]=ans[i-1][j]+a[i][0]; } } } cout<<ans[n-1][x]*5<<endl; return 0; }01背包问题