刚学dp
用了一下01背包,然后就爆了。
分解一下,希望各位dalao能看清楚些,谢谢啦
前面:
#include<bits/stdc++.h>
using namespace std;
int main(void){
int n,x;
scanf("%d %d",&n,&x);
int lose[n],win[n],use[n];
for(int i=0;i<n;i++){
scanf("%d %d %d",&lose[i],&win[i],&use[i]);
}
int dp[n+1][x+1]={};
自我感jo良好。
背包模板核心代码:
for(int i=1;i<=n;i++){
for(int j=1;j<=x;j++){
if(j<use[i-1]) dp[i][j]=dp[i-1][j]+lose[i-1];
else{
dp[i][j]=max(dp[i-1][j]+lose[i-1],dp[i-1][j-use[i-1]]+win[i-1]);
}
}
}
自我感jo还是良好。
结尾:
printf("%d",dp[n][x]*5);
return 0;
}
然后去评测,7个WA,3个AC,求dalao帮助。