HDU 1241 Oil Deposits(石油储藏)
HDU 1241 Oil Deposits(石油储藏)
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Problem Description - 题目描述
GeoSurvComp地质勘测公司勘测底下石油。
GeoSurvComp每次处理一块大型矩形区域,并用一个网格将其划分为若干正方形格子。然后使用传感器分析各个格子是否埋藏石油。
藏有石油的格子则被称为口袋。如果两个口袋相邻,则属于同一片石油。石油可能很大并包含多个口袋。你的任务是测定网格上有多少片石油。
CN
输入文件有若干个网格。
每个网格第一行有m和n,表示行与列,以一个空格分隔。
如果m=0则结束输入。此外1 <= m <= 且 <= n <= 。
随后m行,每行n个字符(不含行尾字符)。每个字符表示一个格子,`*'表示没有石油,`@'表示一个石油袋。
CN
Output - 输出
对于每个网格,输出有多少片石油。属于同一片石油的相邻口袋关系为水平,重置,或对角线。每片石油不超过100个口袋。
CN
Sample Input - 输入样例
1 1
*
3 5
*@*@*
**@**
*@*@*
1 8
@@****@*
5 5
****@
*@@*@
*@**@
@@@*@
@@**@
0 0
Sample Output - 输出样例
0
1
2
2
题解
水题。
直接拿FZU 2150前半部分的代码稍微改改就A了,不超过100的条件并没有什么用。
BFS和DFS应该没区别……都能做。
代码 C++
#include <cstdio>
#include <cstring>
#include <queue>
#define MX 105
struct Point{
int y, x;
} now, nxt;
char map[MX][MX];
int fx[] = { , , -, , , -, , , , , -, -, , -, -, };
std::queue<Point> q;
int main(){
int m, n, opt, i, j, k;
while (scanf("%d%d ", &m, &n), m + n){
opt = ;
memset(map, '*', sizeof map);
for (i = ; i <= m; ++i) gets(&map[i][]); for (i = ; i <= m; ++i) for (j = ; j <= n; ++j){
if (map[i][j] != '@') continue;
now.y = i; now.x = j;
q.push(now); ++opt; map[now.y][now.x] = '*';
while (!q.empty()){
now = q.front(); q.pop();
for (k = ; k < ; k += ){
nxt.y = now.y + fx[k]; nxt.x = now.x + fx[k + ];
if (map[nxt.y][nxt.x] == '@'){ q.push(nxt); map[nxt.y][nxt.x] = '*'; }
}
}
}
printf("%d\n", opt);
}
return ;
}
HDU 1241 Oil Deposits(石油储藏)的更多相关文章
- HDU 1241 Oil Deposits --- 入门DFS
HDU 1241 题目大意:给定一块油田,求其连通块的数目.上下左右斜对角相邻的@属于同一个连通块. 解题思路:对每一个@进行dfs遍历并标记访问状态,一次dfs可以访问一个连通块,最后统计数量. / ...
- hdu 1241 Oil Deposits(DFS求连通块)
HDU 1241 Oil Deposits L -DFS Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & ...
- HDOJ(HDU).1241 Oil Deposits(DFS)
HDOJ(HDU).1241 Oil Deposits(DFS) [从零开始DFS(5)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...
- DFS(连通块) HDU 1241 Oil Deposits
题目传送门 /* DFS:油田问题,一道经典的DFS求连通块.当初的难题,现在看上去不过如此啊 */ /************************************************ ...
- hdu 1241:Oil Deposits(DFS)
Oil Deposits Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total ...
- HDU 1241 Oil Deposits DFS(深度优先搜索) 和 BFS(广度优先搜索)
Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- HDU 1241 Oil Deposits (DFS/BFS)
Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...
- HDOJ/HDU 1241 Oil Deposits(经典DFS)
Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground ...
- hdu 1241 Oil Deposits (简单搜索)
题目: The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. ...
随机推荐
- python基础之可变数据类型与不可变数据类型
一.什么可变数据类型和不可变数据类型 可变数据类型:value值改变,id值不变:不可变数据类型:value值改变,id值也随之改变. 二.如何确定一种数据类型是可变的还是不可变的 根据可变数据类型与 ...
- Python pyodbc安装
1)下面这个链接找个适合自己python版本的文件下载下来 https://pypi.org/project/pyodbc/#files 2)放到scripts下面 3) 在scripts路径上输入c ...
- PLSA主题模型
主题模型 主题模型这样理解一篇文章的生成过程: 1. 确定文章的K个主题. 2. 重复选择K个主题之一,按主题-词语概率生成词语. 3. 所有词语 ...
- SQL优化(转)
1. 负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好习惯 可以优化为in查询: ...
- jQuery实现无刷新切换主题皮肤功能
主题皮肤切换功能在很多网站和系统中应用,用户可以根据此功能设置自己喜欢的主题颜色风格,增强了用户体验.本文将围绕如何使用jQuery实现点击无刷新切换主题皮肤功能. 查看演示DEMO:https:// ...
- win10 校园宽带连接不上的解决办法(错误720、“以太网”没有有效的ip设置)
遇到的问题如下图所示: 插上宽带后,查看以太网状态显示如下: 创建新连接宽带(PPPoE)(R)后,连接失败,错误为720,显示如下: 以太网网络诊断后,结果显示“以太网”没有有效的Ip设置,如下图所 ...
- js获取浏览器类型和版本信息
bro () { let broName = 'Runing' let strStart = 0 let strStop = 0 let temp = '' let userAgent = windo ...
- Django中Session
Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: ·数据库(默认) ·缓存 ·文件 ·缓存+数据库 ·加密cookie (1)数据库中的Session Djan ...
- leetcode [34] Find First and Last Position of Element in Sorted Array
Given an array of integers nums sorted in ascending order, find the starting and ending position of ...
- powermock+mockito+testng 单元测试pom文件
0:Supported versions PowerMock version 1.7.0 and upper has experimental support of Mockito 2. A lot ...