首页 > 代码库 > UVa 572 Oil Deposits(简单DFS)

UVa 572 Oil Deposits(简单DFS)

题意:

  给出油田的数量,八连通的“@”认为是一个油田。和POJ 2386 Lake Counting这个题几乎一样。

 直接上代码:

 

#include<iostream>using namespace std;char maze[105][105];int n,m;void dfs(int x,int y){    maze[x][y]=*;    for(int dx=-1;dx<=1;dx++)        for(int dy=-1;dy<=1;dy++)        {            int nx=x+dx,ny=y+dy;            if(0<=nx&&nx<n&&0<=ny&&ny<m&&maze[nx][ny]==@)            {                dfs(nx,ny);            }        }}int main(){    while(cin>>n>>m,n||m)    {        for(int i=0;i<n;i++)            for(int j=0;j<m;j++)                cin>>maze[i][j];        int ans=0;        for(int i=0;i<n;i++)            for(int j=0;j<m;j++)            {                if(maze[i][j]==@)                {                    dfs(i,j);                    ans++;                }            }        cout<<ans<<endl;    }    return 0;}

 

 

 

 

UVa 572 Oil Deposits(简单DFS)