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. ...
随机推荐
- OBO文件格式1.2
该文件每一行都是一个键值对,基本格式为: 键: 值!注释 总体结构: 文件头 !包含若干行总体说明 词条1 ![词条类型]占第一行,后跟若干行说明 词条2 ! ...
- strace跟踪多进程与内核的交互
1.ptrace的说明 ptrace原型: #include <sys/ptrace.h> long ptrace(enum __ptrace_request request, pid_t ...
- serving inference
1.确定要提供服务的inference的input,output,以及exporter的signature:(这里用classify的signature做例子,input为byte数组,output为 ...
- The Little Prince-12/12
The Little Prince-12/12 双十二,大家有没有买买买呢?宝宝双十一之后就吃土了,到现在,叶子都长出来了!!! 当你真的喜欢一个人的时候 就会想很多 会很容易办蠢事 说傻话 小王子要 ...
- script 跳出小窗口
sss
- select2 AJAX获取数据
页面效果: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"& ...
- oci7编译报’olog’等未定义的引用问题
前一天在测试一个数据导出的时候,发现oci7编译的时候报了一大堆类似"’oparse’未定义的引用问题",这通常是因为找不到实现库的原因,但是oci相关的库又都是存在的,用oci7 ...
- 我是这样做APP的:击中用户的痛点(转)
击中用户的痛点 点评,感觉取名叫做“用户痛点的取舍”更加合适.很多公司.项目的失败完全取决于决策人取舍的失败,一味地追求大而全.迎合上级领导,专断而没有和团队做客观的分析.本文虽然以一个应该来说并不复 ...
- CentOS 7下搭建配置 SVN 服务器
原文链接:https://www.cnblogs.com/tdalcn/p/6937714.html 同步:http://blog.csdn.net/u011884440/article/detail ...
- Django模版语言的复用 1. include标签--模版导入 2.inclusion_tag自定义标签--模版导入 3.母版
include标签--模版导入 ''' 前提:项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的 如何运用:可以将多个样式标签的集合进行封装,对外提供版块的名字( ...