美文网首页
[kuangbin带你飞]专题一 简单搜索 L - Oil De

[kuangbin带你飞]专题一 简单搜索 L - Oil De

作者: jenye_ | 来源:发表于2018-07-20 15:28 被阅读0次

题目: [kuangbin带你飞]专题一 简单搜索


思路

遍历地图,每次找到@dfs标记一下相邻的@就ok了
这题对角线也算相邻的


AC代码

#include<iostream>
#include<cstdio>
using namespace std;
char mm[110][110];
int N,M;
int mov[8][2]={{0,1},{0,-1},{1,0},{-1,0},{1,1},{-1,1},{1,-1},{-1,-1}};
void dfs(int x,int y){
    
    if(x>=0&&y>=0&&x<N&&y<M&&mm[x][y] == '@'){
//      cout<<x<<" "<<y<<endl;
        mm[x][y] = '*';
        for(int i = 0 ;i<8;i++){
            dfs(x+mov[i][0],y+mov[i][1]);       
        }
    }
    return;
}

int main(){
    while(scanf("%d%d",&N,&M)!=EOF&&N!=0&&M!=0){
        int ans = 0;
        for(int i=0;i<N;i++){
                scanf("%s",mm[i]);
        }
        for(int i = 0 ; i<N;i++){
            for(int j = 0 ;j<M;j++){
                    if(mm[i][j] == '@'){
//                      cout<<"get one!"<<endl;
                        ans++;
                        dfs(i,j);
                    }
            }
        }
        printf("%d\n",ans);
    }
    return 0;

}

相关文章

网友评论

      本文标题:[kuangbin带你飞]专题一 简单搜索 L - Oil De

      本文链接:https://www.haomeiwen.com/subject/uthqmftx.html