计蒜客:C10 第四部分:深度优先搜索基础 踏青

【C++代码】

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int n,m,ans=0;
char maze[110][110];
bool vis[110][110];
int dir[4][2]={{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
bool check(int x,int y){
    return x>=1&&y>=1&&x<=n&&y<=m&&!vis[x][y]&&maze[x][y]=='#';
}
void dfs(int x,int y){
    vis[x][y]=true;
    for(int i=0;i<4;i++){
        int tx=x+dir[i][0];
        int ty=y+dir[i][1];
        if(check(tx,ty)){
            dfs(tx,ty);
        }
    }
}
int main(){
    freopen("hiking.in","r",stdin);
    freopen("hiking.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>maze[i][j];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(maze[i][j]=='#'&&!vis[i][j]){
                dfs(i,j);
                ans++;
            }
        }
    }
    cout<<ans;
    return 0;
}
相关推荐
浅念-18 分钟前
C++ 继承
开发语言·c++·经验分享·笔记·学习·算法·继承
算法备案代理23 分钟前
深度合成算法备案:生成式AI需要备案吗?
人工智能·算法·算法备案
菜鸡儿齐23 分钟前
leetcode-全排列
算法·leetcode·深度优先
Wect26 分钟前
LeetCode 102. 二叉树的层序遍历:图文拆解+代码详解
前端·算法·typescript
不想看见40431 分钟前
Maximal Square 基本动态规划:二维--力扣101算法题解笔记
算法·leetcode·动态规划
Hag_2032 分钟前
LeetCode Hot100 53.最大子数组和
数据结构·算法·leetcode
王老师青少年编程36 分钟前
csp信奥赛C++之反素数
数据结构·c++·数学·算法·csp·信奥赛·反素数
Renhao-Wan40 分钟前
Java 算法实践(七):动态规划
java·算法·动态规划
pursuit_csdn1 小时前
LeetCode 1461. Check If a String Contains All Binary Codes of Size K
算法·leetcode·职场和发展
Crazy________2 小时前
力扣113个mysql简单题解析(包含plus题目)
mysql·算法·leetcode·职场和发展