poj 1562 Oil Deposits
来源:互联网 发布:禅道 linux 启动 编辑:程序博客网 时间:2024/06/07 01:06
(1)类型:深搜。
(2)题意:此题与poj2386题非常类似。‘@’表示油田,与‘@’的八面有连接‘@’的与当前油田合并,代表一个油田。问一共有多少个油田。
(3)解题思路:从第一个搜索到的‘@’出发,搜索到八个方向的‘@’,一直搜索到没有‘@’为止,代表一个油田。搜索过的油田做标记。深度搜索即可。
(4)时间复杂度:O(m*n);
(5)总结:此类题型为深搜水题,但是也是做了很多个才能自己手打出来。今后看到这种类似于“水洼”的题目。要快准狠,想到思路,打出模板即可。
(6)代码:
#include<iostream>const int MAX_N=1e2+6;using namespace std;int n,m;char field[MAX_N][MAX_N];void dfs(int x,int y){ field[x][y]='*'; for(int dx=-1;dx<=1;dx++) for(int dy=-1;dy<=1;dy++){ int nx=x+dx,ny=y+dy; if(nx>=0&&nx<n&&ny>=0&&ny<m&&field[nx][ny]=='@')dfs(nx,ny); } return ;}void solve(){ int res=0; for(int i=0;i<n;i++) for(int j=0;j<m;j++) if(field[i][j]=='@'){dfs(i,j);res++;} cout<<res<<endl;}int main(){ ios::sync_with_stdio(false);cin.tie(0); while(cin>>n>>m,n,m){ for(int i=0;i<n;i++) for(int j=0;j<m;j++)cin>>field[i][j]; solve(); }}
阅读全文
1 0
- 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
- poj 1562 oil Deposits
- POJ 1562 Oil Deposits
- jq代码学些15--表格展开伸缩
- 关于Scanner和BufferedReader(待续)
- 家庭光纤宽带延长光纤
- Java知识复习(I/O)
- js代码学习16--表格内容过滤
- poj 1562 Oil Deposits
- Android新浪微博SDK分享功能接入
- IO系列之File
- js代码学习17--控制字体大小
- 关系型数据库和非关系型数据库的区别
- js代码学习18---选项卡
- 【51NOD】 1079
- 数据结构2-二叉树的最大深度
- 《算法4》排序算法总结