博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA-572-搜索基础题
阅读量:5981 次
发布时间:2019-06-20

本文共 1879 字,大约阅读时间需要 6 分钟。

题意

GeoSurvComp 地理调查公司负责发现石油存储,这次GeoSurvComp公司在一个大型矩形区域上工作,

它用一个网格分割地表,然后用可感知装备来单独分析每块小方格区域下是否包含石油,
有油的地块叫做pocket,如果俩个相邻的pocket,那么它们是相同石油存储的一部分,
石油存储能够非常大,可能会包含多个pocket,
你的任务是计算出在一个方格中有多少不同的石油存储.

输入

输入文件里包含一个或多个方格,每个方格由一行包含m,n俩个数字开头,
m是方格的行,n是列.
如果m=0代表输入结束,
要不然1 ≤ m ≤ 100,1 ≤ n ≤ 100
随后m行,每行有n个字符,每个字符代表一块地,*代表没有石油,@代表一个石油pocket

输出

对于每个网格,输出不同的石油存储,
俩个水平相邻,垂直相邻,对角线相邻的不同pocket是相同石油存储的一部分,
一个石油存储不会包含超过100pockets

样例输入

1 1
*
3 5
*@*@*
**@**
*@*@*
1 8
@@****@*
5 5
****@
*@@*@
*@**@
@@@*@
@@**@
0 0

样例输出

0
1
2
2

BUNOJ,AC时间:60ms

#include
#include
#include
#include
using namespace std;#define MAXR 100#define MAXC 100struct Dir{ int r; int c;} dir[8] = { { -1, -1 }, { -1, 0 }, { -1, 1 }, { 0, 1 }, { 0, -1 }, { 1, 1 }, { 1, 0 }, { 1, -1 } };void bfs(queue
q, char map[][100],int used[][100], int r, int c){ while (!q.empty()) { Dir d = q.front(); q.pop(); for(int i = 0; i < 8; i++) { int nr = d.r + dir[i].r; int nc = d.c + dir[i].c; if(nr < 0 || nc < 0 || nr == r || nc == c||used[nr][nc]==1|| map[nr][nc] == '*' ) { continue; } used[nr][nc]=1; Dir dd; dd.r=nr; dd.c=nc; q.push(dd); } }}int main(){ int r, c; while (cin >> r >> c) { if(r==0&&c==0) return 0; char map[MAXR][MAXC]; int used[MAXR][MAXC]; memset(used, 0, sizeof(used)); memset(map, '*', sizeof(map)); for(int i = 0; i < r; i++) for(int j = 0; j < c; j++) { cin >> map[i][j]; } int total = 0; queue
q; Dir d; for(int i = 0; i < r; i++) for(int j = 0; j < c; j++) { if(used[i][j] == 0&&map[i][j]=='@') { total++; used[i][j]=1; d.r=i; d.c=j; q.push(d); bfs( q, map, used, r, c); } } cout<
<

  

 

posted on
2017-05-14 16:29 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/shuiyonglewodezzzzz/p/6852612.html

你可能感兴趣的文章
Hack语言的类型系统
查看>>
C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理
查看>>
hql中setDate和setTimeStamp的区别
查看>>
基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0...
查看>>
用VisualBrush定制复杂的按钮样式
查看>>
composer 报 zlib_decode(): data error
查看>>
在附件管理模块中增加对FTP 上传和预览的支持
查看>>
【Javascript】—— 1 方法function的高级特性
查看>>
时间的处理--与网络时间同步
查看>>
BZOJ 3668: [Noi2014]起床困难综合症【贪心】
查看>>
第六章 对象作用域与servlet事件监听器
查看>>
Delete Volume 操作 - 每天5分钟玩转 OpenStack(57)
查看>>
一分钟应对勒索病毒WannaCry
查看>>
jquery 时间运算、格式化的方法扩张
查看>>
Oracle用户profile详解
查看>>
浅谈保险业的信息安全
查看>>
网络安全的四层智能化革命
查看>>
Windows 10磁盘修复工具Chkdsk新增的命令有哪些?赶快收藏
查看>>
如何备份一个磁盘分区
查看>>
CNCC 2016 | 中科院蒋田仔教授:脑网络组对类脑计算的启示
查看>>