zoukankan      html  css  js  c++  java
  • 202. 水洼计数 Lake Counting(挑战程序设计竞赛)

    地址 https://www.papamelon.com/problem/202

    解答
    很好的BFS模板题, 也可以尝试DFS。
    遍历 每个点 如果是水坑就将其作为起点开始BFS或者DFS搜索,同一批次搜索的点就是同一个坑。 搜索过的点做上标记,避免重复搜索。

    #define _CRT_SECURE_NO_WARNINGS
    #include <iostream>
    #include <vector>
    #include <queue>
    
    using namespace std;
    
    const int N = 110;
    char arr[N][N];
    
    int n, m;
    
    int addx[] = { 1,-1,1,-1,-1,1,0,0 };
    int addy[] = { 0,0,1,-1,1,-1,-1,1 };
    
    void dfs(int x, int y) {
    	arr[x][y] = '.';
    
    	for (int i = 0; i < 8; i++) {
    		int newx = x + addx[i];
    		int newy = y + addy[i];
    
    		if (x >= 0 && x < n && y >= 0 && y < m && arr[newx][newy] == 'W') {
    			dfs(newx,newy);
    		}
    	}
    
    }
    
    
    int main() {
    	cin >> n >> m;
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < m; j++) {
    			cin >> arr[i][j];
    		}
    	}
    	int ans = 0;
    	for (int i = 0; i < n; i++) {
    		for (int j = 0; j < m; j++) {
    			if (arr[i][j] == 'W') {
    				ans++; dfs(i,j);
    			}
    		}
    	}
    	cout << ans << endl;
    
    	return 0;
    }
    

    我的视频题解空间

    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    分形之城
    【SDOI2011 第2轮 DAY1】消防 树上问题+二分+贪心
    【Usaco Nov08 Gold】玩具 三分+贪心
    分治 复习
    快读板子
    最小线段覆盖 C神奇项链
    比赛经验积累1
    字符串 专题
    界面小项目之W3C
    前端小基础
  • 原文地址:https://www.cnblogs.com/itdef/p/15611661.html
Copyright © 2011-2022 走看看