点击打开链接

Oil Deposits

Time
Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 21383    Accepted Submission(s): 12319

Problem Description
The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides the land into numerous square plots. It then analyzes each
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
The input file contains one or more grids. Each grid begins with a line containing m and n, the number of rows and columns in the grid, separated by a single space. If m = 0 it signals the end of the input; otherwise 1 <= m <= 100 and 1 <= n <= 100. Following
this 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
For each grid, output the number of distinct oil deposits. Two different pockets are part of the same oil deposit if they are adjacent horizontally, vertically, or diagonally. An oil deposit will not contain more than 100 pockets.
 
Sample Input
1 1
*
3 5
*@*@*
**@**
*@*@*
1 8
@@****@*
5 5
****@
*@@*@
*@**@
@@@*@
@@**@
0 0
 
Sample Output
0
1
2
2


Select Code
#include <stdio.h>
#include <iostream>
using namespace std; char s[102][102];
int m,n;
int i,j; void dfs(int x,int y)
{
if(x<1||x>m||y<1||y>n)
return ; // 函数返回值为空
if(s[x][y]!='@')
return ;
s[x][y]='*'; //标记
for(int i=-1 ; i<=1 ; i++)
for(int j=-1 ; j<=1 ; j++) //八个方向
{ //也有另外一种写法 即用数组表示b[8][2]={{-1,0},{1,0},{0,-1},{0,1}
dfs(x+i,y+j); // ,{-1,1},{-1,-1},{1,1},{1,-1}}
}
}
int main()
{
while(cin>>m>>n&&m&&n) //这个地方的输入格式用这种,不用scanf
{
int c=0;
for(i=1 ; i<=m ; ++i)
for(j=1 ; j<=n ; j++)
{
cin>>s[i][j];
}
for(i=1 ; i<=m ; ++i)
for(j=1 ; j<=n ; ++j)
{
if(s[i][j]=='@')
{
dfs(i,j);
c++;
}
}
cout<<c<<endl; // return 0 ?
} }


这个题可以作为dfs的一个模板,通过这道题自己更加理解了dfs;

DFS + BFS // 深搜 || 广搜

http://blog.csdn.net/WYK1823376647/article/details/76376736





http://blog.csdn.net/WYK1823376647/article/details/76377050





http://blog.csdn.net/wyk1823376647/article/details/52062965





http://blog.csdn.net/wyk1823376647/article/details/52200485





http://blog.csdn.net/wyk1823376647/article/details/52739349





http://blog.csdn.net/wyk1823376647/article/details/52734432





http://blog.csdn.net/wyk1823376647/article/details/69214947





http://blog.csdn.net/wyk1823376647/article/details/52200580

C - Oil Deposits(dfs)的更多相关文章

  1. HDOJ(HDU).1241 Oil Deposits(DFS)

    HDOJ(HDU).1241 Oil Deposits(DFS) [从零开始DFS(5)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...

  2. Oil Deposits(dfs)

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...

  3. HDU 1241 Oil Deposits DFS(深度优先搜索) 和 BFS(广度优先搜索)

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

  4. UVa572 Oil Deposits DFS求连通块

      技巧:遍历8个方向 ; dr <= ; dr++) ; dc <= ; dc++) || dc != ) dfs(r+dr, c+dc, id); 我的解法: #include< ...

  5. HDU 1241 Oil Deposits (DFS/BFS)

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

  6. HDU-1241 Oil Deposits (DFS)

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

  7. HDU_1241 Oil Deposits(DFS深搜)

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

  8. UVa 572 Oil Deposits(DFS)

     Oil Deposits  The GeoSurvComp geologic survey company is responsible for detecting underground oil ...

  9. [POJ] 1562 Oil Deposits (DFS)

    Oil Deposits Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 16655   Accepted: 8917 Des ...

  10. Oil Deposits(dfs水)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241 Oil Deposits Time Limit: 2000/1000 MS (Java/Othe ...

随机推荐

  1. C++builder XML XSL 代码生成

    void __fastcall TFrmGenCode::XSLTxml1Click(TObject *Sender) { // XSLT转换xml文件格式 _di_IXMLDocument xml; ...

  2. 在coursera上有哪些值得推荐的课程

    来自知乎 https://www.zhihu.com/question/22436320/answer/224996328

  3. UNITY 手动定制inspector

    using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; us ...

  4. S SQL

    样品申请单状态更新为“审核不通过” select STATUS_CD from S_ORDER where row_id='1-5U7IL' update S_ORDER set STATUS_CD= ...

  5. 138. Copy List with Random Pointer (Graph, Map; DFS)

    A linked list is given such that each node contains an additional random pointer which could point t ...

  6. 编译参数中-pthread以及-lpthread的区别

    一般情况下,我们在链接一个(文件名为libxxx.so或libxxx.a等的)库时,会使用-lxxx的方式:在Linux中要用到多线程时,需要链接pthread库,按照惯例,我们应该使用-lpthre ...

  7. SQLServer性能优化之---水平分库扩展

      汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 第一次引入文件组的概念:http://www.cnblogs.com/dunitia ...

  8. python之字符编码的重要思想

    #.保证不乱码的核心法则就是,字符按照什么标准而编码的,就要按照什么标准解码,此处的标准指的就是字符编码 #.在内存中写的所有字符,一视同仁,都是unicode编码,比如我们打开编辑器,输入一个“你” ...

  9. [Java] 获取当前Project所在的路径

    String projectPath = System.getProperty ("user.dir").toString()

  10. Mybatis 实用篇(四)返回值类型

    Mybatis 实用篇(四)返回值类型 一.返回 List.Map List<User> getUsers(); <select id="getUsers" re ...