Luogu P2670 扫雷游戏

Posted clockcleaner

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Luogu P2670 扫雷游戏相关的知识,希望对你有一定的参考价值。

作为一名刚入oi大坑(雾)的蒟蒻,读题的时候我最先想到的是开一个二维字符组(不清楚到底叫什么),然后把整个矩阵输入进去,进行循环判断,如果在该位置的周围有雷的话,就将其的数值加1;同样,如果该位置是雷的话,就直接赋值为“*”。最后直接输出矩阵里的每个位置所代表的含义(数字或者“*”)。(幸好这个题的数据范围较小,要不数据大了之后程序应该会爆掉。。。做这个题的时候旁边一个dalao用的是邻接矩阵。。。)

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char c[101][101];//神奇的二维字符数组
int main()
    {
    int a,b;
    cin>>a>>b;//输入矩阵大小
    for(int i=0;i<a;i++)
        for(int j=0;j<b;j++)//嵌套循环输入
        {
        cin>>c[i][j];//输入每个位置上的情况
        }
    for(int i=0;i<a;i++){
        for(int j=0;j<b;j++)//循环输出,判断周围是否有雷
            {
            int sum=0;
            if(c[i][j]==‘*‘) cout<<‘*‘;//如果该位置有雷,直接输出‘*’
            else         //判断,周围有雷自+1;
                {
                if(c[i-1][j+1]==‘*‘) sum++;
                if(c[i][j+1]==‘*‘) sum++;
                if(c[i+1][j+1]==‘*‘) sum++;
                if(c[i-1][j]==‘*‘) sum++;
                if(c[i+1][j]==‘*‘) sum++;
                if(c[i-1][j-1]==‘*‘) sum++;
                if(c[i][j-1]==‘*‘) sum++;
                if(c[i+1][j-1]==‘*‘) sum++;
                cout<<sum;//判断完毕后直接输出sum
                }
            }
            cout<<endl;//换行
    }   
    return 0;     
    }

以上是关于Luogu P2670 扫雷游戏的主要内容,如果未能解决你的问题,请参考以下文章

P2670 [NOIP2015 普及组] 扫雷游戏

洛谷 P2670 扫雷游戏

洛谷P2670 扫雷游戏

洛谷 P2670 [NOIP2015 普及组] 扫雷游戏

洛谷 P2670 [NOIP2015 普及组] 扫雷游戏

算法1-1模拟与高精度