UVA 572 POJ 2386 连通块问题
来源:互联网 发布:儿童 编程培训 编辑:程序博客网 时间:2024/05/01 00:41
题目链接:
UVA 572 Oil Deposits
POJ 2386 Lake Counting
题目简介:
这两道题所运用到的知识点完全一样,都是用dfs来寻找连通块(所谓连通块,就是连在一起的一片区域,横竖或者对角线连在一起就称其为一个
DFS运用:
这一次运用DFS是先找到那个W所在位置,然后运用递归,对它进行DFS深度搜索,搜索他周围和他连通的区域,这里题目中一个(-1 -> 1)的循环运用很好,他身边的8个块都搜一遍
POJ AC代码(UVA上相同,只不过把所有的‘W’换成‘@’即可)
#include<iostream>#include<cstdio>#include<cstring>#include<string>using namespace std;int m, n;const int maxn = 110;int idx[maxn][maxn];char pic[maxn][maxn];void dfs(int r, int c, int id){ if(r >= m || r < 0 || c >= n || c < 0) return ; if(idx[r][c] > 0 || pic[r][c] != 'W') return ; idx[r][c] = id; for(int dr = -1; dr < 1; dr++) { for(int dc = -1; dc < 1; dc++) { if(dr != 0 || dc != 0) dfs(r+dr, c+dc, id); } }}int main(){ cin >> m >> n; memset(idx, 0, sizeof(idx)); int cnt = 0; for(int i = 0; i < m; i++) cin >> pic[i]; for(int i = 0; i < m; i++) { for(int j = 0; j < n; j++) { if(idx[i][j] == 0 && pic[i][j] == 'W') dfs(i, j, ++cnt); } } cout << cnt << endl; return 0;}
没有比脚更长的路,加油!
阅读全文
0 0
- UVA 572 POJ 2386 连通块问题
- DFS求连通块(UVa 572)
- UVA 11853(找连通块)
- UVa 572 Oil Deposits(DFS求8连通块)
- UVA 572 Oil Deposits dfs求连通块
- UVa - 572 - Oil Deposits(dfs求连通块)
- Uva 572 Oil Deposits 油田 (DFS求连通块)
- POJ N0.2386 Lake Counting(求连通块数量)
- POJ 2386(DFS 求连通块数量)
- POJ 2386(DFS求连通块的经典算法)
- poj2386 深搜 连通块问题
- 遍历求解连通块问题
- uva 11853 Paintball dfs找连通块
- poj 2117(统计连通块的个数)
- dfs求连通块(围棋 poj)
- 例题 6-12 油田 UVa 572 用dfs求连通块
- 6.4.1 用DFS求连通块 UVA 572 Oil Deposits DFS水题
- 经典第六章 例题 6-12 UVA 572 Oil Deposits(用DFS求连通块)
- HDU 1027 Ignatius and the Princess II(全排列)
- AOJ-problem-09
- Iphone 消息通知(APNS)的3种方式 -- C# 和 nodejs
- kubeadm 安装kubetnetes(flannel)
- html 标签与元素
- UVA 572 POJ 2386 连通块问题
- 多进程共享内存续篇-大锁
- 【修真院“纯洁”系列之十九】驱逐令
- 深入浅出谈接口(interface)和类间继承(extends)
- 【Linux命令】用 scp 命令在不同主机之间拷贝文件或目录
- 算法--查找
- js元素节点之其他节点
- Asp.Net MVC5 视图页面编译调用流转过程,以及页面Web展示
- 组播实现-Java