[CodeForces984B]Minesweeper

Posted

tags:

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

?????????ios   ret   TE   def   IV   names   ??????   mat   str   

Translate

?????????????????????????????????????????????????????????????????????????????????????????? ??????????????????????????????????????????

  • ???????????????????????????????????????????????????
  • ???????????????????????????

??????:

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????(0)????????????.???????????????????????????????????????????????????????????????????????????????????????????????????????????????

Code

#include<iostream>
#include<cstring>
using namespace std;
int n,m;
char maze[101][101];
int d[101][101];
int dx[8]= {-1,-1,-1,0,0,1,1,1},dy[8]= {-1,0,1,1,-1,-1,0,1}; //???????????????????????????(dfs?????????)
void add(int x,int y)
{
    int i;
    for(i=0; i<8; i++) //????????????????????????8?????????
    {
        int nx=x+dx[i],ny=y+dy[i];
        if(nx>=0&&nx<n&&ny>=0&&ny<m&&maze[nx][ny]!='*')
            d[nx][ny]=d[nx][ny]+1;
    }
}
int main()
{
    cin>>n>>m;
    memset(d,0,sizeof(d));  //????????????
    int i,j;
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            cin>>maze[i][j];
        }
    }  //??????
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            if(maze[i][j]=='*')
                add(i,j); //???????????????*???????????????????????????????????????????????????
        }
    }
    int k=0;
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            if(maze[i][j]=='.'&&d[i][j]!=0)//???????????????.??????d??????0???????????????????????????????????????(?????????)
            {
                k=1;
                break;
            }
            else
                if(maze[i][j]=='.')
                    continue;
                else
                    if(maze[i][j]=='*')
                        continue;
                    else
                        if((int)(maze[i][j])-48!=d[i][j])//????????????????????????????????????????????????????????????????????????
                        {
                            k=1;    //?????????????????????????????????
                            break;
                        }
        }
    }
    if(k==0)//????????????
        cout<<"YES"<<endl;
    else
        cout<<"NO"<<endl;
    return 0;
}

}  

以上是关于[CodeForces984B]Minesweeper的主要内容,如果未能解决你的问题,请参考以下文章

《游戏学习》Java版仿windows扫雷小游戏源码

《游戏学习》Java版仿windows扫雷小游戏源码

Win32 Loadimage 生成错误 1812 和 1813

codeforces上怎么看测试数据

如何看codeforces做了多少题

codeforces上怎么看测试数据