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;
}



HD_1241Oil Deposits(DFS)

Problem Description The GeoSurvComp geologic survey company is responsible for detecting undergro...

HDU 1241 Oil Deposits <BFS>

Oil Deposits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T...

[HDU1241] C - Oil Deposits(dfs&bfs)

Oil Deposits The GeoSurvComp geologic survey company is responsible for detecting underground oil de...
  • RRicky_
  • RRicky_
  • 2017年07月31日 22:58
  • 104

【DFS&BFS】HDU1241-Oil Deposits

【这里不用看】这是一道神奇的题,它之所以神奇不是因为它有多实用,也不是因为它有多难,而是因为它可以用两种方法解出来:一种是深搜(DFS),另一种是广搜(BFS)。所以学长连着两天把这道题叫我们用这两种...

杭电bfs 水题1241 Oil Deposits - 油田 详解 + 分析

文章 纯属原创 如有bug 还请高手指点
  • fat1995
  • fat1995
  • 2015年01月17日 21:05
  • 909

HDU-1241-Oil Deposits(BFS)

J - Oil Deposits Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Subm...

HDU 1241/UVa572 Oil Deposits(DFS&BFS)

Oil Deposits Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Tota...

【HDU 1241 Oil Deposits】 + DFS || BFS

Oil DepositsProblem Description The GeoSurvComp geologic survey company is responsible for detectin...

HDU 1241 Oil Deposits[dfs || bfs]

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241 题目的意思很

PKU 1562/HDU 1241 Oil Deposits(原油有多少块区域---BFS,DFS)

Oil Deposits Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Descri...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oil Deposits(HD_1241)BFS
举报原因:
原因补充:

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