poj2386----简单dfs,a一送一
2013-01-02 23:24
357 查看
/*poj2386 求有几个水坑*/ #include<stdio.h> #include<iostream> char ans[110][110]; int n, m; int cnt; int dx[10] = {-1, 0, 1, -1, 1, -1, 0, 1}; int dy[10] = {1, 1, 1, 0, 0, -1, -1, -1}; void dfs(int x, int y) { ans[x][y] = '.'; for(int i=0; i<8; i++) { int tx = x + dx[i]; int ty = y + dy[i]; if(tx>=0 && tx<n && ty>=0 && ty<m && ans[tx][ty]=='W') { dfs(tx, ty); } } } void fun() { cnt = 0; for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { if(ans[i][j] == 'W') { cnt++; dfs(i, j); } } } printf("%d\n", cnt); } int main() { while(scanf("%d %d", &n, &m) != EOF) { getchar(); for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { scanf("%c", &ans[i][j]); } getchar(); } fun(); } return 0; }
a一送一:poj3620
/*poj3620 求最大的水坑*/ #include<iostream> #include<stdio.h> int n, m, k; int ans[110][110]; int dx[5] = {0, 1, 0, -1}; int dy[5] = {1, 0, -1, 0}; int tmp; void dfs(int x, int y) { ans[x][y] = 0; tmp++; for(int i=0; i<4; i++) { int tx = x + dx[i]; int ty = y + dy[i]; if(tx>=0 && tx<n && ty>=0 && ty<m && ans[tx][ty]) { dfs(tx, ty) ; } } } void fun() { int cnt = 0; for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { tmp=0; if(ans[i][j]) { dfs(i, j); if(tmp > cnt) cnt = tmp; } } } printf("%d\n", cnt); } int main() { int a, b; while(scanf("%d %d %d", &n, &m, &k) != EOF) { for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { ans[i][j] = 0; } } for(int i=0; i<k; i++) { scanf("%d %d", &a, &b); ans[a-1][b-1] = 1; } fun(); } return 0; }
a一送一:poj3620
相关文章推荐
- poj2386 Lake Counting(简单DFS)
- HDU1241&POJ2386 dfs简单题
- poj2386(简单dfs)
- poj2386 Lake Counting(简单DFS)
- POJ2386 Lake Counting简单dfs
- POJ2386-简单BFS/DFS
- 简单dfs--poj2386
- 简单题目的dfs模版
- 简单的迷宫问题(DFS+回溯)
- CF6B: President's Office(简单DFS)
- HDU 3368 Reversi (简单dfs)
- POJ 1111(简单dfs)
- POJ1979 Red and Black (简单DFS)
- hdu 3290 (简单dfs)
- POJ2386 Lake Counting 【DFS】
- 地宫取宝 dfs 记忆化搜索 简单dp
- ZOJ 2100 Seeding(简单DFS)
- uva 784 Maze Exploration(简单dfs)
- DFS解决任意组合原来这样简单
- test1.A[【dfs简单题】