讨论 / 484扫雷,数据好像有问题(悬赏)
x-ray 2012-08-06 00:29:00
点我顶贴 收藏 删除
测试结果1: 测试结果错误.错误结果为:

Field #1:

*100

2210

1*10

1110

Field #2:

**100

33200

1*100

正确结果应为:Field #1:

*100

2210

1*10

1110

Field #2:

**100

33200

1*100

测试结果2: 测试结果错误.错误结果为:

Field #1:

2*32333321

3*5******2

3*6*6556*3

3*6*4**5*3

3*6*44*6*3

3*6*55*6*3

3*5****5*3

3*656656*3

2********2

1233333321

正确结果应为:Field #1:

2*32333321

3*5******2

3*6*6556*3

3*6*4**5*3

3*6*44*6*3

3*6*55*6*3

3*5****5*3

3*656656*3

2********2

1233333321

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

Field #1:

01110001110

02*20002*20

03*31113*30

03*42*24*30

02*4*3*4*20

013*323*310

002*202*200

00111011100

Field #2:

00123332100

001*****100

00125*52100

00003*30000

00003*30000

00125*52100

001*****100

00123332100

Field #3:

12210001221

2**21002**1

3*5*2103*41

3*42*213*30

3*312*24*30

4*3012*5*30

**20012**20

22100012210

Field #4:

12333321000

2******2100

3*53333*210

3*300013*20

3*300013*20

3*53333*210

2******2100

12333321000

正确结果应为:Field #1:

01110001110

02*20002*20

03*31113*30

03*42*24*30

02*4*3*4*20

013*323*310

002*202*200

00111011100

Field #2:

00123332100

001*****100

00124*42100

00003*30000

00003*30000

00124*42100

001*****100

00123332100

Field #3:

12210001221

2**21002**1

3*4*2103*41

3*42*213*30

3*312*24*30

4*3012*4*30

**20012**20

22100012210

Field #4:

12333321000

2******2100

3*53333*210

3*300013*20

3*300013*20

3*53333*210

2******2100

12333321000

测试结果4: 输出过长|用户输出数据超过标准输出两倍[标准输出1029位|选手输出10211位]

我就不说前面2个点全部一样,但第3个点的4应该是5吧,请出题者和管理员速进

#1 x-ray@2009-06-30 06:24:00
回复 删除

#2 飞雪天涯@2009-06-30 07:01:00
回复 删除
[color=red]

您的话太对了,我也是这个问题。

也许是出数据的人太萌了吧,反正已经有N多人开骂了!

[/color]

我的也是错的~:

/*

查看题目 Show Problem

题目:扫雷

问题编号:484 [提交该题] [讨论该问题] [有关讨论] [Who AC] [相关题解] [最优解]

My Flag:Unsubmited

题目类型

字符串处理

描述

你玩过扫雷游戏吗?这个有趣的小游戏来自于某个被人们遗忘的操作系统.游戏的目标是找出一个n×m矩阵内的所有地雷.在本题中,你需要为每个单元格统计出他周围的地雷个数.每个单元格最多有8个相邻的单元格.下图的4×4矩阵中有两个地雷,用’*’表示.计算结果为右边的矩阵:

输入格式

输入将包含若干个矩阵,对于每一个矩阵,第一行包含两个数字n和m(0<n,m<=100),分别代表这个剧真的行数和列数.接下来的n行每行包含m个字符,即该矩阵.安全区域用’.’表示,有地雷的区域用’*’表示.当n=m=0时,输入文件结束.

输出格式

对于第x个矩阵,首先在单独的一行里打印序号:’Field #x:’,接下来的n行中,读入的’.’应被该位置周围的地雷数所代替.输出的每两个矩阵必须用一个空行隔开

样例输入

4 4

*...

....

.*..

....

3 5

**...

.....

.*...

0 0

样例输出

Field #1:

*100

2210

1*10

1110

Field #2:

**100

33200

1*100

*/

#define INT_MAX 2000

#include<stdio.h>

#include<memory.h>

main (){

int m,n,i,j,k;

int dis[102][102];

char field[102][102];

m=1,n=2,k=0;

while (m!=0&&n!=0){

scanf("%d %d",&m,&n);

if (m==0&&n==0) break;

memset(dis,0,sizeof(dis));

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

scanf("%s",field[i]);

for (j=0;j<n;++j)

if (field[i][j]==’*’){

++dis[i-1][j-1];

++dis[i-1][j];

++dis[i-1][j+1];

++dis[i][j-1];

++dis[i][j+1];

++dis[i+1][j-1];

++dis[i+1][j];

++dis[i+1][j+1];

dis[i][j]=-INT_MAX;

}

}

if (k!=0) printf("\n\n");

++k;

printf("Field #%d\n",k);

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

for (j=0;j<n;++j)

if (dis[i][j]<0) printf("*");

else printf ("%d",dis[i][j]);

if (i!=m) printf("\n");

}

}

// while (1);

return 0;

}

#3 x-ray@2009-06-30 20:39:00
回复 删除
那管理员看一下啊,行的话把数据改过来吧
#4 x-ray@2009-07-01 04:19:00
回复 删除

#5 飞雪天涯@2009-07-01 07:57:00
回复 删除
LSS说得对!
#6 webeskycn@2009-07-01 20:41:00
回复 删除
相当有问题。。。
#7 zrp@2009-07-02 00:32:00
回复 删除
话说这题本来就水....与其AC掉它,不如让它的通过人数变为0来吓人吧.....
#8 x-ray@2009-07-02 05:07:00
回复 删除
LS真雷人。。。。。。。。。。。
#9 xxwzy@2009-07-02 06:34:00
回复 删除
delay(地雷)啊
#10 飞雪天涯@2009-07-02 06:36:00
回复 删除
……
查看更多回复
提交回复