zoj1709 bfs
来源:互联网 发布:淘宝差评更改链接 编辑:程序博客网 时间:2024/06/07 04:46
@代表油田,*代表不是油田
八个方向中任意连在一起的都相当于同一块油田,不重复算
用bfs dfs都可以
自我感觉水水哒结果因为行和列ij什么的越搞越晕一直跪
所以下面代码的n,m和题目是反的
#include<stdio.h>#include<string.h>#include<iostream>#include<queue>using namespace std;int po[8][2]={ {-1,1},{-1,-1},{1,-1},{1,1},{1,0},{0,1},{-1,0},{0,-1}};char oil[110][110];int n,m;struct node{ int x,y; void init(int nx,int ny) { x=nx; y=ny; }};void bfs(int x,int y){ int nx,ny; queue<node> q; node a,b; a.init(x,y); q.push(a); oil[y][x]='*'; while(!q.empty()) { a=q.front(); q.pop(); int xx=a.x; int yy=a.y; for(int i=0;i<8;i++) { nx=xx+po[i][0]; ny=yy+po[i][1]; if(nx<=m&&ny<=n&&nx>=0&&ny>=0&&oil[ny][nx]=='@') { b.init(nx,ny); q.push(b); oil[ny][nx]='*'; //printf("nx,ny: %d %d\n",nx,ny); } } }}int main(){ int time; while(scanf("%d%d",&n,&m)!=EOF) { if(m==0){return 0;} sum=0; memset(oil,0,sizeof(oil)); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) cin>>oil[i][j]; } for(int i=0;i<n;i++) { for(int j=0;j<m;j++) if(oil[i][j]=='@') { time++; bfs(j,i); } } printf("%d\n",time); } return 0;}
0 0
- zoj1709 bfs
- zoj1709
- ZOJ1709
- ZOJ1709
- ZOJ1709
- zoj1709
- zoj1709-Oil Deposits
- poj1562 & zoj1709 - Oil Deposits (DFS)
- ZOJ1709 POJ1562 Oil Deposits,并查集
- zoj1709 Oil Deposits (DFS)递归算法
- ZOJ1709/POJ1562 油田问题/搜索/DFS
- BFS
- bfs
- BFS
- BFS
- bfs
- BFS
- bfs
- 为什么使用接口
- iOS Code Sign error: Provisioning profile can't be found 解决方案
- 流行 NIO Framework netty 和 mina 性能测评与分析
- 关于spring mvc + mybatis + spring aop声明式事务管理没有作用的问题
- 英尺到米转换
- zoj1709 bfs
- Application
- WebKit加载流程 - 概述
- java 保存读取图片到oracle
- 文件名过长/文件夹路径过长,无法删除文件夹/文件的解决办法
- 经典java NIO框架
- IT程序员们,我该做什么选择呢
- 软件开发的21条规律
- 关于Spring MVC注解 @Transactional 事务标签 @InitBinder 标签