Oil Deposits(HD_1241)BFS

原创 2015年11月20日 09:28:23

题目描述:见杭电OJ http://acm.hdu.edu.cn/showproblem.php?pid=1241

题目思路:题目大意为求油田的连通分量,可以用两个for循环遍历整个图,当遇到为油田时,分量数加一,并且使用DFS将相连的油田标记为已走过,最后输出分量总数。

代码如下:

#include"stdio.h"
#include"string.h"
#include"iostream"
using namespace std;
int map[105][105];
int n,m;
int count=0; //记油井数
void DFS(int i,int j)
{
 map[i][j]=0;
 //向上走
 if(i-1>=1&&map[i-1][j]==1)
  DFS(i-1,j);
 //向下走
 if(i+1<=n&&map[i+1][j]==1)
  DFS(i+1,j);
 //向左走
 if(j-1>=1&&map[i][j-1]==1)
  DFS(i,j-1);
 //向右走
 if(j+1<=m&&map[i][j+1]==1)
  DFS(i,j+1);
 //向左上走
 if(i-1>=1&&j-1>=1&&map[i-1][j-1]==1)
  DFS(i-1,j-1);
 //向右上走
 if(i-1>=1&&j+1<=m&&map[i-1][j+1]==1)
  DFS(i-1,j+1);
 //向左下走
 if(i+1<=n&&j-1>=1&&map[i+1][j-1]==1)
  DFS(i+1,j-1);
 //向右下走
 if(i+1<=n&&j+1<=m&&map[i+1][j+1]==1)
  DFS(i+1,j+1);
}
int main()
{
 while(scanf("%d%d",&n,&m)!=EOF)
 {
  if(n==0&&m==0)
   break;
  count=0;
  //存图
  char ch;
  for(int i=1;i<=n;i++)
   for(int j=1;j<=m;j++)
   {
    cin>>ch;
    if(ch=='*')
     map[i][j]=0;
    else
     map[i][j]=1;
   }
  //遍历图
  for(int i=1;i<=n;i++)
   for(int j=1;j<=m;j++)
   {
    if(map[i][j]==1)
    {
     count++;
     DFS(i,j);
    }
   }
  printf("%d\n",count);
  
 }
 
 return 0;
}



hdu1241 Oil Deposits (bfs水题)

Problem Description The GeoSurvComp geologic survey company is responsible for detecting undergroun...
  • zxy160
  • zxy160
  • 2017年05月27日 20:17
  • 226

BFS 广度优先搜索 Oil Deposits

以下是源码import java.util.Scanner; public class Main { public static void main(String[] args) ...
  • pilot10
  • pilot10
  • 2015年12月04日 20:44
  • 234

HDU 1241/UVa572 Oil Deposits(DFS&BFS)

Oil Deposits Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Tota...
  • hurmishine
  • hurmishine
  • 2016年03月22日 18:14
  • 1031

hdu1241 Oil Deposits(dfs&&bfs)

这又是一个练习bfs和dfs的非常好的题目,找油井的个数,8个方向只要有,就算同一个,问有多少个下面是dfs的,没什么可说的#include #include using namespace st...
  • zcmartin2014214283
  • zcmartin2014214283
  • 2016年09月23日 10:12
  • 301

UVa 572 - Oil Deposits 搜索专题

572 - Oil Deposits 11158 58.77% 5511 95.30% 题目链接: http://uva...
  • shuangde800
  • shuangde800
  • 2012年07月06日 00:52
  • 4503

DFS入门精讲:油田(Oil Deposits UVA572)

传送门:https://vjudge.net/problem/UVA-572 具体原题看链接。 大意:输入一个m行n列字符矩阵,统计字符@组成多少个八连块(如果两个字符@所在格子横竖对角线方向相邻就...
  • qq_38121348
  • qq_38121348
  • 2017年05月23日 20:02
  • 120

[ACM - 深度优先搜索]Oil Deposits

Problem Description   The GeoSurvComp geologic survey company is responsible for detecting undergrou...
  • sr19930829
  • sr19930829
  • 2013年11月27日 09:22
  • 2131

ACM-DFS之Oil Deposits——hdu1241

Oil Deposits Problem Description The GeoSurvComp geologic survey company is responsible for detecti...
  • lx417147512
  • lx417147512
  • 2014年02月25日 12:47
  • 1848

杭电(hdu)1241 Oil Deposits

Oil Deposits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T...
  • IT142546355
  • IT142546355
  • 2015年08月15日 20:52
  • 333

Oil Deposits (深搜(水))

题目来源:https://vjudge.net/contest/159739#problem/L 【题意】 题意里叙述了这么一种关系,@的上下左右斜只要是@,那么这两个就可以视为同一种,问共有多少...
  • duan_1998
  • duan_1998
  • 2017年05月02日 21:47
  • 137
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oil Deposits(HD_1241)BFS
举报原因:
原因补充:

(最多只允许输入30个字)