经典DFS--找油田---POJ 1562
来源:互联网 发布:云计算的应用前景 编辑:程序博客网 时间:2024/04/28 13:00
//@author: yzj Date:2015/07/26//sourse : http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82603#problem/H//meaning: 经典找油田DFS问题#include <iostream>#include <cstdio>#include <queue>using namespace std;const int MAXN = 105;int n, m;char c[MAXN][MAXN];void dfs(int x, int y){ c[x][y]='*'; for(int i = -1; i <= 1; i++) { for(int j = -1; j <=1; j++) { int nx = x+i, ny = y+j; if(0<=nx&&nx<n&&0<=ny&&ny<m&&c[nx][ny]=='@') { dfs(nx, ny); } } }}int main(){ //freopen("f:/yzj/cppCode/input.txt", "r", stdin); /* 又学到了一个小技巧:由于scanf函数不能自动忽略空格,所以在输入数字紧接着要 输入字符型char时,我们就需要小心了,不要读到空格或是回车 解决方法有两种: 1.使用getchar()函数 2.直接在%d或者是%c前面使用空格,就好了 */ while(~scanf(" %d %d", &n, &m)) { if(n == 0 && m==0) break; //getchar(); for(int i = 0 ; i < n; i++) { for(int j = 0; j < m; j++) { scanf(" %c", &c[i][j]); } //getchar(); }// for(int i = 0 ; i < n; i++)// {// for(int j = 0; j < m; j++)// {// cout << c[i][j];// }// cout << endl;// } int ans = 0; for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { if(c[i][j]=='@') { dfs(i, j); ans++; } } } printf("%d\n", ans); } return 0;}
0 0
- 经典DFS--找油田---POJ 1562
- dfs油田
- dfs油田
- poj 1562 Oil Deposits DFS找块
- HDU1241 油田合并(DFS)
- 实现DFS之“油田”
- 实现DFS之“油田”
- 油田数量DFS
- 油田问题(dfs)
- uva572(DFS 油田)
- POJ 2531 - DFS - 经典
- 油田合并(dfs实现)
- POJ 2531 经典的DFS
- poj 1315 经典的dfs
- poj 1011 Sticks (经典dfs)
- POJ 1011 Sticks(经典dfs)
- poj 1011 Sticks - 经典DFS
- poj 1501 dfs(找字符串)
- Git在Windows上安装与使用(一)
- gstreamer 0.10编译遇到错误
- stm32中的C语言(7.24)
- Swift学习笔记(十一)——Swift中三元运算符的低级错误:Consecutive statements on a line must be separated by';'
- mcafee8.8 Patch1与mcafee8.7 Patch5右键扫描出现msi.dll等无效映像错误的解决方法
- 经典DFS--找油田---POJ 1562
- MPI_Gathe MPI收集
- 在Ubuntu14.04下编译caffe + cuda7.0
- Dev-Cpp/Mingw32 环境介绍
- leetcode[86]:Partition List
- 近期使用McAfee8.8时碰到的一些问题
- 真情妙悟铸文章
- 简单的桶排序
- CC2540/CC2541 : Set the Peripheral Being Advertising while It is Being Connected