Oil Deposits(hdu1241简单的bfs)
来源:互联网 发布:spring源码tx 编辑:程序博客网 时间:2024/04/27 18:56
题意:寻找有多少块独立的油田
思路:bfs搜索,遇到@就搜索所有与之相连的@然后将其置成*,遍历整个图看看搜索了多少次,就是答案,八方向的广搜
总结:在读图的时候使用%s一行一行的读,如果用%c还要用getchar()吃掉每一行的回车,有点麻烦并且这道题目数据有多余的空格,只能用%s
广搜代码:
#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;int n,m;char map[105][105];int dect[8][2] = {0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,1,-1,-1};void bfs(int x,int y){queue<int> q;q.push(x);q.push(y);while(!q.empty()){int xx = q.front();q.pop();int yy = q.front();q.pop();int i;for(i = 0; i < 8; i++){int xg = xx + dect[i][0];int yg = yy + dect[i][1];if(xg>= 0 && xg < n && yg >= 0 && yg < m && map[xg][yg] != '*'){if(map[xg][yg] == '@'){map[xg][yg] = '*';q.push(xg);q.push(yg);}}}}}int main(){while(scanf("%d %d",&n,&m) != EOF){int i,j;memset(map,'\0',sizeof(map));if(n == 0 && m == 0)break;getchar();for(i = 0; i < n; i++){scanf("%s",map[i]);}int sum = 0;for(i = 0; i < n; i++){for(j = 0; j < m; j++){if(map[i][j] == '@'){bfs(i,j);sum++;}}}printf("%d\n",sum);}return 0;}
深搜代码:
#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;int n,m;char map[105][105];int dect[8][2] = {0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,1,-1,-1};void dfs(int x,int y){if(x >= 0 && x < n && y >= 0 && y < m){int i;for(i = 0; i < 8; i++){int gx = x+dect[i][0];int gy = y+dect[i][1];if(map[gx][gy] == '@'){map[gx][gy] = '*';dfs(gx,gy);}}}}int main(){while(scanf("%d %d",&n,&m) != EOF){int i,j;memset(map,'\0',sizeof(map));if(n == 0 && m == 0)break;getchar();for(i = 0; i < n; i++){scanf("%s",map[i]);}int sum = 0;for(i = 0; i < n; i++){for(j = 0; j < m; j++){if(map[i][j] == '@'){dfs(i,j);sum++;}}}printf("%d\n",sum);}return 0;}
- Oil Deposits(hdu1241简单的bfs)
- HDU1241 Oil Deposits【dfs&bfs】
- 【DFS&BFS】HDU1241-Oil Deposits
- hdu1241 Oil Deposits (bfs水题)
- 【hdu1241】Oil Deposits——dfs/bfs
- HDU1241 Oil Deposits(dfs or bfs)
- hdu1241 Oil Deposits裸的搜哦哦哦哦
- Oil Deposits hdu1241 dfs
- hdu1241 Oil Deposits
- HDU1241:Oil Deposits
- HDU1241:Oil Deposits(DFS)
- HDU1241 Oil Deposits
- hdu1241(DFS Oil Deposits )
- HDU1241 Oil Deposits
- HDU1241-Oil Deposits
- HDU1241:Oil Deposits(DFS)
- hdu1241 Oil Deposits
- HDU1241 Oil Deposits DFS
- 透过现象看本质!转自酷客http://coolshell.cn/articles/4102.html
- Android lunch分析以及产品分支构建
- 项目中配置了spring Security3 的并发session管理,一直无效
- 《Effective C++》简明笔记-中
- C/C++中三种方法显示当前系统时间 localtime time.h
- Oil Deposits(hdu1241简单的bfs)
- Linux 编程经典书籍推荐
- 使用Pull解析器生成XML文件和读取xml文件
- 超级楼梯 + 找规律
- 桥模式(Bridge Pattern)
- 关于sql连接查询问题
- PlaySound详解
- 编程技巧学习笔记之对象池
- Android Vold架构