讨论 / 是不是测试数据错了
87933801 2011-11-07 04:03:00
点我顶贴 收藏 删除
题目:[NOIP2000]方格取数

状态: Unaccepted

测评机: Xeond[6]

得分: 80分

提交日期: 2011-11-7 17:23:00

有效耗时: 219毫秒

测试结果1: 通过本测试点|有效耗时63ms

测试结果2: 通过本测试点|有效耗时47ms

测试结果3: 测试结果错误.错误结果为:23

正确结果应为:25

测试结果4: 通过本测试点|有效耗时46ms

测试结果5: 通过本测试点|有效耗时63ms

提交代码:

#include<iostream>

using namespace std;

int i,n,m,x,k=0;

struct r

{

int a[11][11],x[11][11];

}h;

int bj(int a,int b)

{

if(a>b)

return a;

else

return b;

}

void ql(int xx,int y)

{

h.a[xx][y]=0;

if((xx!=1)||(y!=1))

{

if(xx-1==0)

ql(xx,y-1);

else

if(y-1==0)

ql(xx-1,y);

else

if(bj(h.x[xx-1][y],h.x[xx][y-1])==h.x[xx-1][y])

ql(xx-1,y);

else

ql(xx,y-1);

}

}

int main()

{

cin>>m;

for(i=1;i<=m;i++)

for(n=1;n<=m;n++)

h.a[i][n]=0;

for(i=1;i<=m;i++)

h.x[i][0]=h.x[0][i]=0;

cin>>i>>n>>x;

while(i!=0)

{

h.a[i][n]=x;

cin>>i>>n>>x;

}

for(i=1;i<=m;i++)

for(n=1;n<=m;n++)

h.x[i][n]=bj(h.x[i-1][n],h.x[i][n-1])+h.a[i][n];

k+=h.x[m][m];

ql(m,m);

for(i=1;i<=m;i++)

for(n=1;n<=m;n++)

h.x[i][n]=0;

for(i=1;i<=m;i++)

for(n=1;n<=m;n++)

h.x[i][n]=bj(h.x[i-1][n],h.x[i][n-1])+h.a[i][n];

cout<<k+h.x[m][m];

return 0;

}

#1 吴钰晗@2011-11-07 01:31:00
回复 删除
我也是这样!!!!!!!!!!!!!!!!!!!!!!
#2 吴钰晗@2011-11-07 02:03:00
回复 删除
不能用这种,不最优,用枚举法。
#3 吴钰晗@2011-11-07 02:03:00
回复 删除
不能用这种,不最优,用枚举法。
#4 87933801@2011-11-07 04:03:00
回复 删除
0 0 0 0 0

0 0 13 0 5

0 13 0 0 0

0 0 100 0 0

0 0 0 0 0

这样就不行

#5 87933801@2011-11-07 04:03:00
回复 删除
0 0 0 0 0

0 0 13 0 5

0 13 0 0 0

0 0 100 0 0

0 0 0 0 0

这样就不行

#6 87933801@2011-11-07 04:03:00
回复 删除
0 0 0 0 0

0 0 13 0 5

0 13 0 0 0

0 0 100 0 0

0 0 0 0 0

这样就不行

查看更多回复
提交回复