DFS PKU 1562
简单地DFS
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 12801 | Accepted: 6998 |
Description
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
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
Sample Input
1 1
*
3 5
*@*@*
**@**
*@*@*
1 8
@@****@*
5 5
****@
*@@*@
*@**@
@@@*@
@@**@
0 0
Sample Output
0
1
2
2
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <limits.h>
#include <ctype.h>
#include <string.h>
#include <string>
#include <math.h>
#include <algorithm>
#include <iostream>
#include <queue>
#include <stack>
#include <deque>
#include <vector>
#include <set>
//#include <map>
using namespace std;
#define MAXN 100 + 10
char map[MAXN][MAXN];
int vis[MAXN][MAXN];
int m,n;
//int count;
int xx[8] = {-1,-1,0,1,1,1,0,-1};
int yy[8] = {0,1,1,1,0,-1,-1,-1}; void DFS(int x,int y){
int i;
for(i=0;i<8;i++){
int dx = x+xx[i];
int dy = y+yy[i];
if(dx>=0 && dx<m && dy>=0 && dy<n){
if(map[dx][dy]=='@' && vis[dx][dy]==0){
vis[dx][dy] = 1;
DFS(dx,dy);
//vis[dx][dy] = 0;
}
}
} return ;
} int main(){
int i,j;
int ans; while(~scanf("%d%d",&m,&n)){
if(m==0 && n==0){
break;
}
for(i=0;i<m;i++){
scanf("%s",map[i]);
}
ans = 0;
memset(vis,0,sizeof(vis));
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(map[i][j]=='@' && vis[i][j]==0){
vis[i][j] = 1;
ans++;
DFS(i,j);
//vis[i][j] = 0;
}
}
}
printf("%d\n",ans);
}
}
版权声明:本文博客原创文章。博客,未经同意,不得转载。
DFS PKU 1562的更多相关文章
- POJ 1562 && ZOJ 1709 Oil Deposits(简单DFS)
题目链接 题意 : 问一个m×n的矩形中,有多少个pocket,如果两块油田相连(上下左右或者对角连着也算),就算一个pocket . 思路 : 写好8个方向搜就可以了,每次找的时候可以先把那个点直接 ...
- poj 1562 dfs
http://poj.org/problem?id=1562 #include<iostream> using namespace std; ,m=,sum=; ][]; ][]={-,, ...
- POJ 1562 Oil Deposits (HDU 1241 ZOJ 1562) DFS
现在,又可以和她没心没肺的开着玩笑,感觉真好. 思念,是一种后知后觉的痛. 她说,今后做好朋友吧,说这句话的时候都没感觉.. 我想我该恨我自己,肆无忌惮的把她带进我的梦,当成了梦的主角. 梦醒之后总是 ...
- POJ 1562 Oil Deposits (并查集 OR DFS求联通块)
Oil Deposits Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 14628 Accepted: 7972 Des ...
- POJ 1562(L - 暴力求解、DFS)
油田问题(L - 暴力求解.DFS) Description The GeoSurvComp geologic survey company is responsible for detecting ...
- [POJ] 1562 Oil Deposits (DFS)
Oil Deposits Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 16655 Accepted: 8917 Des ...
- pku 2488 A Knight's Journey (搜索 DFS)
A Knight's Journey Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 28697 Accepted: 98 ...
- PKU 2531 Network Saboteur(dfs+剪枝||随机化算法)
题目大意:原题链接 给定n个节点,任意两个节点之间有权值,把这n个节点分成A,B两个集合,使得A集合中的每一节点与B集合中的每一节点两两结合(即有|A|*|B|种结合方式)权值之和最大. 标记:A集合 ...
- HDU - 1241 POJ - 1562 Oil Deposits DFS FloodFill漫水填充法求连通块问题
Oil Deposits The GeoSurvComp geologic survey company is responsible for detecting underground oil de ...
随机推荐
- 记一个Oracle存储过程错误
下面一个存储过程是创建一个job,在5秒后更新一个表: create or replace PROCEDURE P_TEST AS jobno number; BEGIN dbms_job.submi ...
- Android 反编译(一,apktool+smail2java)
一:解压缩(获取图片等资源) 对于apk中丰富的资源,假设我们在练习的时候须要引用某些apk中的资源文件时,最简单的办法使用解压缩工具对apk进行解压缩,然后在对应的文件夹下查找须要的资源文件. 二: ...
- spring html5 拖拽上传多文件
注:这仅仅是一个粗略笔记.有些代码可能没用.兴许会再更新一个能够使用的版本号.不足之处,敬请见谅. 1.spring环境搭建,这里使用的是spring3的jar,须要同一时候引入common-IO 和 ...
- 用MODELLER构建好模型后对loop区域进行自动的优化过程
一:对生成的模型的所有的loop区域进行优化 # Homology modeling by the automodel class from modeller import * from modell ...
- 解决 - java.lang.OutOfMemoryError: unable to create new native thread
工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题.分析问题.解决问题. 一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题: 运行的环境 ...
- Div 滚动栏滚动到指定的位置
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- DFA和trie特里实现敏感词过滤(python和c语言)
今天的项目是与完成python开展,需要使用做关键词检查,筛选分类,使用前c语言做这种事情.有了线索,非常高效,内存小了,检查快. 到达python在,第一个想法是pip基于外观的c语言python特 ...
- [LeetCode136]Single Number寻找一个数组里只出现一次的数
题目: Given an array of integers, every element appears twice except for one. Find that single one. No ...
- 各种ESB产品比较(转)
介绍了主流商业和开源ESB的发展趋势.可借鉴的地方和其缺点: 主要介绍: Oracle Service Bus WebSphere Message Broker ...
- Git使用汇总
1.下载代码,代码被下载到本地 git clone https://github.com/nuptboyzhb 2.提交代码 git commit -a -m "期间提交的信息叙述性说明&q ...