状态: Unaccepted
测评机: Xeond[6]
得分: 90分
提交日期: 2010-7-12 20:12:00
有效耗时: 437毫秒
测试结果1: 通过本测试点|有效耗时62ms
测试结果2: 通过本测试点|有效耗时47ms
测试结果3: 通过本测试点|有效耗时47ms
测试结果4: 通过本测试点|有效耗时47ms
测试结果5: 通过本测试点|有效耗时47ms
测试结果6: 通过本测试点|有效耗时47ms
测试结果7: 输出过少|用户输出数据少于标准输出的50%[标准输出5位|选手输出1位]
测试结果8: 通过本测试点|有效耗时46ms
测试结果9: 通过本测试点|有效耗时47ms
测试结果10: 通过本测试点|有效耗时47ms
#include<stdio.h>
#include<stdlib.h>
#define MAX(a,b) ((a)>(b)?(a):(b))
#define P dp[a-rp[i]][b-money[i]]
#define Q dp[a][b]
int dp[101][101][3];
int main(){
int i,j,m,n,p,t[101],rp[101],a,b,c,d,money[101],k;
scanf("%d",&n);
for(i = 1; i<=n; i++)
scanf("%d%d%d",&money[i],&rp[i],&t[i]);
scanf("%d%d",&c,&d);
for(i =1; i<=n; i++){
for(a = c; a>=rp[i]; a--){
for(b = d; b>=money[i]; b--){//1为人数
if(Q[1] == P[1]+1 && P[2]+t[i]<Q[2]){
Q[2] = P[2]+t[i];
}
if(Q[1]<P[1]+1){
Q[2] = P[2]+t[i];
Q[1] = P[1]+1;
}
}
}
}
/* for(a = 1; a<=10; a++){
for(b = 1; b<=10; b++){
for(c = 1; c<=15; c++)
printf("%d\t",dp[c][b][a]);
printf("\n");
}
printf("a:%d\n",a);
}*/
printf("%d",dp[d][c][2]);
// system("pause");
return 0;
}
输出地时候居然dp[c][d] 打成了dp[d][c]居然过了九个点让我乱调了半天。