DFS基础题
2015-05-15 20:20
281 查看
hdu 1241 油田 裸DFS
题意:@代表油田 8个方向上还有@就相连 相当于求图中连通子图的个数
Sample Input
1 1 // n m
*
3 5
*@*@*
**@**
*@*@*
1 8
@@****@*
5 5
****@
*@@*@
*@**@
@@@*@
@@**@
0 0
Sample Output
0
1
2
2
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> using namespace std; int d[4][2] = {{0,1},{0,-1},{1,0},{-1,0} } ; char map[110][110] ; int n , m ; int sum = 0 ; void dfs(int x , int y) { int fx , fy ; int i ; sum++ ; map[x][y] = '#'; for (i = 0 ; i < 4 ; i++) { fx = x + d[i][0] ; fy = y + d[i][1] ; if (fx>=0 && fx<n && fy>=0 && fy<m && map[fx][fy] == '.') { dfs(fx,fy) ; } } } int main() { // freopen("in.txt","r",stdin) ; while (scanf("%d %d" , &m , &n) !=EOF) { if (n == 0 && m == 0) break ; int i , j ; int bx , by ; sum = 0 ; for (i = 0 ; i < n ; i++) { for (j = 0 ; j < m ; j++) { cin>>map[i][j]; } } for (i = 0 ; i < n ; i++) { for (j = 0 ; j < m ; j++) { if (map[i][j] == '@') { bx = i ; by = j ; } } } dfs(bx,by) ; printf("%d\n" , sum) ; } return 0; }View Code
相关文章推荐
- Poj 3087 + Hdu 1312 + Hdu 1241 + Poj 3278 (基础BFS DFS)
- NYOJ1058. 部分和问题(基础DFS)
- POJ 1321 Chess Problem 基础DFS
- poj2488~dfs基础题
- 数据结构基础 图的遍历(一) 之 DFS
- 数据结构基础(21) --DFS与BFS
- acm算法基础1 素数环与DFS
- 算法基础-->图论(BFS,DFS)
- CodeForces 586D Phillip and Trains (基础搜索 -- DFS)
- hdu 1241(dfs基础题)
- HDU 1016:Prime Ring Problem(基础DFS)
- 数据结构基础(21) --DFS与BFS
- poj2245Lotto(最基础的dfs)
- HDU 1241 DFS基础题 Oil Deposits石油储藏 以初学者角度+详细注释
- hdu 1016 DFS基础
- hdu 1016(dfs基础)
- poj1312dfs基础
- POJ 1985 Cow Marathon 求直径 DFS基础 和 BFS 基础
- 数据结构基础(21) --DFS与BFS
- 图论基础(bfs+dfs简介)