题目链接: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