题目链接:http://poj.org/problem?id=1562
----------------------------------------------------------------------------------------------------------------------------------------------------------
欢迎光临天资小屋:http://user.qzone.qq.com/593830943/main
----------------------------------------------------------------------------------------------------------------------------------------------------------
Description
Input
Output
Sample Input
1 1 * 3 5 *@*@* **@** *@*@* 1 8 @@****@* 5 5 ****@ *@@*@ *@**@ @@@*@ @@**@ 0 0
Sample Output
0 1 2 2
Source
代码如下:
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define TM 117
int n, m, ans, k;
char map[TM][TM];
int vis[TM][TM];
int xx[8] = {1,1,1,0,-1,-1,-1,0};
int yy[8] = {1,0,-1,-1,-1,0,1,1};
void dfs(int x, int y)
{
vis[x][y] = 1;
for(int i = 0; i < 8; i++)
{
int dx = x+xx[i];
int dy = y+yy[i];
if(dx>=0&&dx<n&&dy>=0&&dy<m&&map[dx][dy]=='@'&&!vis[dx][dy])
{
vis[dx][dy] = 1;
dfs(dx,dy);
}
}
}
int main()
{
int i, j;
while(cin>>n>>m)
{
if(n==0 && m==0)
break;
memset(vis,0,sizeof(vis));
k = 0;
for(i = 0; i < n; i++)
{
cin>>map[i];
}
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
{
if(map[i][j] == '@' && !vis[i][j])
{
dfs(i,j);
k++;
}
}
}
cout<<k<<endl;
}
return 0;
}
poj1562 Oil Deposits(深搜dfs),布布扣,bubuko.com
原文地址:http://blog.csdn.net/u012860063/article/details/37822791