poj 2386 Lake Counting
2012-09-01 23:13
363 查看
#include <iostream> #include <string> using namespace std; const int MAX = 110; char matrix[MAX][MAX]; int n, m, vis[MAX][MAX], ans; //每一个点的八个方向坐标的增减! int dir[8][2] = {{-1, -1}, {-1, 0}, {-1, 1}, {0, -1}, {0, 1}, {1, -1}, {1, 0}, {1, 1}}; //矩阵的输入 void init() { int i, j; for (i = 0; i < n; i++){ getchar(); for (j = 0; j < m; j++){ scanf("%c", &matrix[i][j]); } } return ; } //进行深度搜索! void dfs(int x, int y) { int i, tmpx, tmpy; vis[x][y] = 1; for (i = 0; i < 8; i++){ tmpx = x + dir[i][0]; tmpy = y + dir[i][1]; if (tmpx >= 0 && tmpx < n && tmpy >= 0 && tmpy < m && matrix[tmpx][tmpy] == 'W' && !vis[tmpx][tmpy]){ dfs(tmpx, tmpy); } } } int main() { int i, j; while (scanf("%d%d", &n, &m) != EOF){ ans = 0; memset(vis, 0, sizeof(vis)); init(); for (i = 0; i < n; i++){ for (j = 0; j < m; j++){ if (matrix[i][j] == 'W' && !vis[i][j]){ dfs(i, j); ans++; } } } cout << ans << endl; } system("pause"); }
相关文章推荐
- POJ-2386-Lake Counting-解题报告
- POJ 2386 Lake Counting(DFS)
- POJ 2386 Lake Counting (dfs)
- POJ 2386 Lake Counting(经典dfs)
- POJ 2386--Lake Counting
- poj 2386 Lake Counting
- POJ - 2386 dfs-Lake Counting
- POJ-2386-Lake Counting
- (Relax DFS1.2)POJ 2386 Lake Counting(使用DFS来计算有多少坨东西是连通的)
- poj 2386 Lake Counting——BFS(队列)
- poj 2386 Lake Counting
- POJ 2386 Lake Counting(DFS)
- POJ 2386 Lake Counting - DFS
- poj 2386 Lake Counting
- poj2386——Lake Counting(搜索)
- poj 2386 Lake Counting(深搜)
- POJ 2386 Lake Counting (DFS)
- Poj 2386 Lake Counting【Bfs】
- POJ 2386 Lake Counting
- POJ 2386 Lake Counting (裸DFS 黑白图像)