题目内容

P2670

大意:现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。

解题思路

红题模拟,智障题目,扫入一颗雷更新周围八个点即可

只需要注意读入即可

#include <cstdio>

int n,m,f[105][105];
const int inf=0x3f3f3f3f;
const int fx[8]={1,1,1,-1,-1,-1,0,0};
const int fy[8]={0,1,-1,0,1,-1,1,-1};

int main()
{
    scanf("%d %d\n",&n,&m);//先干掉回车符
    char tmp;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            tmp=getchar();
            if(tmp=='*')
            {
                f[i][j]=inf<<1;//雷的那一个点标记一下
                for(int k=0;k<8;k++)
                {
                    int xx=i+fx[k],yy=j+fy[k];
                    f[xx][yy]++;
                }
            }
        }
        getchar();//干掉每行末尾回车符
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(f[i][j]<=inf)
                printf("%d",f[i][j]);
            else
                printf("*");//如果是雷的话输出星号
        }
        printf("\n");
    }
    return 0;
}
最后修改日期:2020年2月13日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。