POJ 1562 Oil Deposits (简单深搜)
来源:互联网 发布:朴素贝叶斯算法python 编辑:程序博客网 时间:2024/06/05 11:30
链接:http://poj.org/problem?id=1562
思路:遍历每一个油田,当遍历到某一个油田时,查找出与它相连接的油田,标记或者换成‘*’,一边统计个数就行了;
代码如下:
#include<iostream>#include <cstdio>#include <cstring>#include <cstdlib>#define MAXN 105#define RST(N)memset(N, 0,sizeof(N))using namespace std;char map[101][101]; //定义地图 map[][],标记油田状况int dir[8][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}}; //搜索8个方向int n, m, cnt; //表示输入的地图有n行m列//深度优先搜索int dfs(int x, int y){ int a, b; map[x][y] = '*'; //访问过的都由@改为*,剪枝 for(int k=0; k<8; ++k) { a = x + dir[k][0]; b = y + dir[k][1]; if(a<n && a>=0 && b<m && b>=0 && map[a][b]=='@') { dfs(a, b); } } return 1; //每次递归都返回1,最后表示有多少连通块}int main(){ while(cin >> n >> m && n || m) { cnt = 0; for(int i=0; i<n; ++i) cin >> map[i]; for(int i=0; i<n; ++i) { for(int j=0; j<m; ++j) { if(map[i][j]=='@') { cnt += dfs(i, j); } } } cout << cnt << endl; } return 0;}
0 0
- POJ 1562 Oil Deposits (简单深搜)
- poj 1562 Oil Deposits 简单dfs
- Oil Deposits(POJ 1562)
- poj 1562 Oil Deposits
- POJ 1562 Oil Deposits
- poj 1562 Oil Deposits
- poj 1562 Oil Deposits
- poj-1562Oil Deposits
- POJ-1562-Oil Deposits
- POJ 1562 Oil Deposits
- POJ 1562 Oil Deposits
- POJ 1562 Oil Deposits
- POJ 1562 Oil Deposits
- poj 1562 Oil Deposits
- poj 1562 Oil Deposits
- POJ:1562 Oil Deposits
- poj 1562 Oil Deposits
- poj 1562:Oil Deposits
- 在.net中读写config文件的各种方法
- 向蓝牙设备发送命令
- 暴雪高效哈希算法
- CListCtrl控件
- android实用代码块
- POJ 1562 Oil Deposits (简单深搜)
- 谷歌Gmail诞生记:十年回首
- 细说 ASP.NET Cache 及其高级用法
- 关于int *a; int &a; int & *a; int * &a
- [LeetCode]Linked List Cycle
- 取出对象中的字符串
- 类加载器---类加载器简介
- 堆排序
- 五子棋 - 稍微写出有点实际用途的程序了,感觉不错!