栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

扫雷(dfs)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

扫雷(dfs)

#include "bits/stdc++.h"

using namespace std;
int dir[8][2]={{0,1},{1,0},{0,-1},{-1,0},{1,1},{-1,-1},{1,-1},{-1,1}};
char s[55][55];
int n,m,a,b;
int check(int x,int y){
    int cnt = 0;
    for(int i=0;i<8;i++){
        int tx = dir[i][0] + x;
        int ty = dir[i][1] + y;
        if(tx < 0 || ty < 0 || tx > n-1 || ty > m-1) continue;
        if(s[tx][ty] == 'M') cnt++;
    }
    return cnt;
}
void dfs(int x , int y){
    s[x][y] = check(x,y) + '0';
    if(s[x][y] != '0') return;
    for(int i=0;i<8;i++){
        int tx = dir[i][0] + x;
        int ty = dir[i][1] + y;
        if(tx < 0 || ty < 0 || tx > n-1 || ty > m-1) continue;
        if(s[tx][ty] != 'E') continue;
        dfs(tx,ty);
    }
}

int main()
{
    while (cin >> n >> m){
        for(int i=0;i> s[i][j];
            }
        }
        cin >> a >> b;
        if(s[a][b] == 'M') s[a][b]='X';
        else dfs(a,b);
        for(int i=0;i 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/691808.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号