社区讨论
请教一下为什么把注释掉的初始化加上就会WA
P1509找啊找啊找GF参与者 4已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lobgjt4m
- 此快照首次捕获于
- 2023/10/29 20:39 2 年前
- 此快照最后确认于
- 2023/11/04 02:02 2 年前
CPP
#include <cstdio>
#include <algorithm>
#define INF 0x2f2f2f2f
const int MAXM=101,MAXR=101,MAXN=101;
using namespace std;
int dp[MAXM][MAXR],res[MAXM][MAXR];
struct girl {
int rmb,rp,t;
girl():rmb(0),rp(0),t(0){}
};
girl a[MAXN];
int main() {
int n,m,r;
scanf("%d",&n);
for(int i=1; i<=n; i++) {
scanf("%d%d%d",&a[i].rmb,&a[i].rp,&a[i].t);
}
scanf("%d%d",&m,&r);
/* for(int i=1; i<=m; i++) {
for(int j=1; j<=r; j++) res[i][j]=INF;
}为何不能加上?*/
for(int i=1; i<=n; i++) {
for(int j=m; j>=a[i].rmb; j--) {
for(int k=r; k>=a[i].rp; k--) {
girl now=a[i];
if(dp[j-now.rmb][k-now.rp]+1>dp[j][k]) { //如果选了之后数量更多,那么就选
dp[j][k]=dp[j-now.rmb][k-a[i].rp]+1;
res[j][k]=res[j-now.rmb][k-a[i].rp]+now.t; //注意要选上!
}
else if(dp[j-a[i].rmb][k-now.rp]+1==dp[j][k]) {
res[j][k]=min(res[j][k],res[j-now.rmb][k-now.rp]+now.t);
}
}
}
}
printf("%d",res[m][r]);
return 0;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...