博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1562--Oil Deposits
阅读量:7128 次
发布时间:2019-06-28

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

Description

The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each plot separately, using sensing equipment to determine whether or not the plot contains oil. A plot containing oil is called a pocket. If two pockets are adjacent, then they are part of the same oil deposit. Oil deposits can be quite large and may contain numerous pockets. Your job is to determine how many different oil deposits are contained in a grid.

Input

The input contains one or more grids. Each grid begins with a line containing m and n, the number of rows and columns in the grid, separated by a single space. If m = 0 it signals the end of the input; otherwise 1 <= m <= 100 and 1 <= n <= 100. Following this are m lines of n characters each (not counting the end-of-line characters). Each character corresponds to one plot, and is either `*', representing the absence of oil, or `@', representing an oil pocket.

Output

are adjacent horizontally, vertically, or diagonally. An oil deposit will not contain more than 100 pockets.

Sample Input

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

Sample Output

0122

分析:向八个方向搜索、

源码:

#include 
#include
#include
using namespace std;char map[101][101];int n, m, p;void dfs(int i, int j)//递归函数{ if(map[i][j]!='@' || i<0 || j<0 || i>=m || j>=n) return; else { map[i][j]='*';//扫过的都变成'*' dfs(i-1, j-1); dfs(i-1, j); dfs(i-1, j+1); dfs(i, j-1); dfs(i, j+1); dfs(i+1, j-1); dfs(i+1, j); dfs(i+1, j+1); }}int main(){ int i, j; while(scanf("%d%d",&m,&n)!=EOF) { if(m==0 || n==0) break; p = 0; for(i = 0; i < m; i++) for(j = 0; j < n; j++) //scanf("%c",&map[i][j]); cin>>map[i][j]; for(i = 0; i < m; i++) { for(j = 0; j < n; j++) { if(map[i][j] == '@') { dfs(i, j); p++; } } } printf("%d\n",p); } return 0;}

 

 

 

转载地址:http://nnhel.baihongyu.com/

你可能感兴趣的文章
ABP源码分析十五:ABP中的实用扩展方法
查看>>
块级元素才能用缩进
查看>>
app、web其他测试点
查看>>
网站入侵思路
查看>>
Buffer
查看>>
Ubuntu 下 vi 输入方向键会变成 ABCD 的解决方法
查看>>
hihoCoder1687(向量叉积)
查看>>
20165211 获奖感想及java课程总结
查看>>
POJ 3252, Round Numbers
查看>>
荒野无灯路由器固件配置DDNS的过程
查看>>
Dotest-两张图告诉你,为什么要测试兼容性?
查看>>
HTML 5 History API的”前生今世”
查看>>
【iOS】iOS消息推送机制的实现
查看>>
电脑高手常用快捷键
查看>>
杨辉三角形
查看>>
css3 flex笔记整理
查看>>
swift 分组tableview 设置分区投或者尾部,隐藏默认间隔高度
查看>>
MySQL案例09:Last_IO_Error: Got fatal error 1236 from master when reading data from binary log
查看>>
js 图片压缩 转成base64
查看>>
文艺小青年
查看>>