UVa 572 油田(DFS求连通块)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=513
终于开始接触图了,恩,开始接触DFS了,这道题就是求连通分量,比较简单。
#include<iostream>
#include<cstring>
using namespace std; int m, n; //记录连通块的数量
char a[][];
int b[][]; void DFS(int i, int j, int count)
{
if (i < || i >= m || j < || j >= n) return; //在递归时出界的情况
if(b[i][j]> || a[i][j]!='@') return;
b[i][j] = count;
for (int p = -; p <= ; p++)
{
for (int q = -; q <= ; q++)
{
if (p != ||q != ) DFS(i + p, j + q, count);
}
}
} int main()
{
while (cin >> m >> n && m && n)
{
for (int i = ; i < m; i++)
scanf("%s", &a[i]);
int count = ;
memset(b, , sizeof(b));
for (int i = ; i < m; i++)
{
for (int j = ; j < n; j++)
{
if (b[i][j] == && a[i][j]=='@') DFS(i, j, ++count);
}
}
cout << count << endl;
}
return ;
}
2016-12-03 07:49:56
UVa 572 油田(DFS求连通块)的更多相关文章
- UVA 572 Oil Deposits油田(DFS求连通块)
UVA 572 DFS(floodfill) 用DFS求连通块 Time Limit:1000MS Memory Limit:65536KB 64bit IO Format: ...
- UVA 572 -- Oil Deposits(DFS求连通块+种子填充算法)
UVA 572 -- Oil Deposits(DFS求连通块) 图也有DFS和BFS遍历,由于DFS更好写,所以一般用DFS寻找连通块. 下述代码用一个二重循环来找到当前格子的相邻8个格子,也可用常 ...
- [C++]油田(Oil Deposits)-用DFS求连通块
[本博文非博主原创,均摘自:刘汝佳<算法竞赛入门经典>(第2版) 6.4 图] [程序代码根据书中思路,非独立实现] 例题6-12 油田(Oil Deposits,UVa572) 输入一个 ...
- DFS入门之二---DFS求连通块
用DFS求连通块也是比较典型的问题, 求多维数组连通块的过程也称为--“种子填充”. 我们给每次遍历过的连通块加上编号, 这样就可以避免一个格子访问多次.比较典型的问题是”八连块问题“.即任意两格子所 ...
- HDU1241 Oil Deposits —— DFS求连通块
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241 Oil Deposits Time Limit: 2000/1000 MS (Java/Othe ...
- UVA 572 dfs求连通块
The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSu ...
- 用DFS求连通块(种子填充)
[问题] 输入一个m行n列的字符矩阵,统计字符“@”组成多少个八连块.如果两个字符“@”所在的格子相邻(横.竖或者对角线方向),就说它们属于同一个八连块.例如,图6-9中有两个八连块. 图6-9 [分 ...
- 图-用DFS求连通块- UVa 1103和用BFS求最短路-UVa816。
这道题目甚长, 代码也是甚长, 但是思路却不是太难.然而有好多代码实现的细节, 确是十分的巧妙. 对代码阅读能力, 代码理解能力, 代码实现能力, 代码实现技巧, DFS方法都大有裨益, 敬请有兴趣者 ...
- [uva]AncientMessages象形文字识别 (dfs求连通块)
非常有趣的一道题目,大意是给你六种符号的16进制文本,让你转化成二进制并识别出来 代码实现上参考了//http://blog.csdn.net/u012139398/article/details/3 ...
随机推荐
- fragment 添加menu
http://bbs.51cto.com/thread-1091458-1-1.html 有详解 @Override public void onCreate(Bundle savedInstance ...
- DotNetBar v12.9.0.0 Fully Cracked
更新信息: http://www.devcomponents.com/customeronly/releasenotes.asp?p=dnbwf&v=12.9.0.0 如果遇到破解问题可以与我 ...
- 访问FLASH设备-W25X16
/************************************* *文件名称:w25x16_spi.c * *功能描述:访问和写入数据到闪存w25x16 * *建立日期:2016-03-1 ...
- lightoj1080 线段树
//Accepted 6628 KB 520 ms //I a b 把a到b区间的二进制位去反,转化成a到b区间的数全部加1 //Q a 判断第a位的奇偶 #include <cstdio> ...
- .NET快速开发平台(DevExpress)免费下载
Express开发的eXpressApp Framework为简单快速实现商业应用的提供了有效的手段.强大的模块化结构支持跨平台的特定域扩展.典型应用实例包括:商业/销售/客户关系管理系统,项目,文档 ...
- 不能使用weak修饰进行声明的类
These classes include NSTextView, NSFont and NSColorSpace; for the full list, see Transitioning to A ...
- 基础框架Fundation和UIkit框架的定义和使用
Foundation 框架为所有应用程序提供基本的系统服务 您的应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上.Foundation 框架提供许多基本的对象类 ...
- Candy Distribution_找规律
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6012 Accepted: 3341 Description N chi ...
- 一个自定义的窗体样式MessageBox控件
using System;using System.Collections.Generic;using System.Text;using System.Drawing;using System.Dr ...
- java学习第九天
目标 异常(5个关键字 throw try catch finally throws ) 一.概念 异常: 非正常情况,例外.人为什么会生病?内因+外因.内因: 身体不够健壮—>锻炼身体增强体质 ...