简单的BFS
题意:多起点多终点

 /*
简单的BFS
题意:多起点多终点
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<queue>
#include<algorithm>
using namespace std; const int maxn = ;
const int inf = 0x3f3f3f3f; int dis[ maxn ][ maxn ];
char mat[ maxn ][ maxn ];
const int dx[]={,,,-};
const int dy[]={,-,,}; queue<int>q; void init(){
memset( dis,0x3f,sizeof( dis ) );
while( !q.empty() )
q.pop();
} bool in( int x,int y,int n,int m ){
if( x>=&&x<n && y>=&&y<m ) return true;
else return false;
} void bfs( /*int x,int y,*/int n,int m ){
/*int curx = x;
int cury = y;
int curt = 0;
q.push( curx );
q.push( cury );
q.push( curt );*/
while( !q.empty() ){
int curx = q.front();q.pop();
int cury = q.front();q.pop();
int curt = q.front();q.pop();
for( int i=;i<;i++ ){
int nx = curx+dx[i];
int ny = cury+dy[i];
int nt = curt + ;
if( in( nx,ny,n,m ) && dis[ nx ][ ny ]>nt ){
dis[ nx ][ ny ] = nt;
q.push( nx );
q.push( ny );
q.push( nt );
}
}
}
return ;
} int main(){
int n,m;
//freopen( "in.txt","r",stdin );
while( scanf("%d%d",&n,&m)== ){
init();
for( int i=;i<n;i++ ){
scanf("%s",mat[i]);
for( int j=;j<m;j++ ){
if( mat[ i ][ j ]=='' ){
dis[ i ][ j ] = ;
q.push( i );
q.push( j );
q.push( );
}
}
}
bfs( n,m );
for( int i=;i<n;i++ ){
for( int j=;j<m;j++ ){
if( j== ) printf("%d",dis[ i ][ j ]);
else printf(" %d",dis[ i ][ j ]);
}
printf("\n");
}
}
return ;
}

ECNU1104-BFS的更多相关文章

  1. 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)

    图的遍历的定义: 从图的某个顶点出发访问遍图中所有顶点,且每个顶点仅被访问一次.(连通图与非连通图) 深度优先遍历(DFS): 1.访问指定的起始顶点: 2.若当前访问的顶点的邻接顶点有未被访问的,则 ...

  2. 【BZOJ-1656】The Grove 树木 BFS + 射线法

    1656: [Usaco2006 Jan] The Grove 树木 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 186  Solved: 118[Su ...

  3. POJ 3278 Catch That Cow(bfs)

    传送门 Catch That Cow Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 80273   Accepted: 25 ...

  4. POJ 2251 Dungeon Master(3D迷宫 bfs)

    传送门 Dungeon Master Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 28416   Accepted: 11 ...

  5. Sicily 1215: 脱离地牢(BFS)

    这道题按照题意直接BFS即可,主要要注意题意中的相遇是指两种情况:一种是同时到达同一格子,另一种是在移动时相遇,如Paris在(1,2),而Helen在(1,2),若下一步Paris到达(1,1),而 ...

  6. Sicily 1048: Inverso(BFS)

    题意是给出一个3*3的黑白网格,每点击其中一格就会使某些格子的颜色发生转变,求达到目标状态网格的操作.可用BFS搜索解答,用vector储存每次的操作 #include<bits/stdc++. ...

  7. Sicily 1444: Prime Path(BFS)

    题意为给出两个四位素数A.B,每次只能对A的某一位数字进行修改,使它成为另一个四位的素数,问最少经过多少操作,能使A变到B.可以直接进行BFS搜索 #include<bits/stdc++.h& ...

  8. Sicily 1051: 魔板(BFS+排重)

    相对1150题来说,这道题的N可能超过10,所以需要进行排重,即相同状态的魔板不要重复压倒队列里,这里我用map储存操作过的状态,也可以用康托编码来储存状态,这样时间缩短为0.03秒.关于康托展开可以 ...

  9. Sicily 1150: 简单魔板(BFS)

    此题可以使用BFS进行解答,使用8位的十进制数来储存魔板的状态,用BFS进行搜索即可 #include <bits/stdc++.h> using namespace std; int o ...

  10. ACM/ICPC 之 靠墙走-DFS+BFS(POJ3083)

    //POJ3083 //DFS求靠左墙(右墙)走的路径长+BFS求最短路 //Time:0Ms Memory:716K #include<iostream> #include<cst ...

随机推荐

  1. Java开源 开源工作流

    OpenEbXML   点击次数7801 Werkflow   点击次数11181 OSWorkflow   点击次数14988 wfmOpen   点击次数7997 OFBiz   点击次数1234 ...

  2. iPhone左下角app图标

    iOS8之后,苹果增加了一个新功能.会根据位置,自动在锁屏界面左下角出现相关应用.比如用户在苹果零售店时候,右下角会出现Apple Store官方应用的快捷方式,按住左下角的图标向上滑动,即可快速解锁 ...

  3. UIViewSubviews多个views之间的关系

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  4. ASP.NET MVC3 使用kindeditor编辑器获取不到值

    做开发真的是会遇到各种问题,如果不亲自尝试,不动手,很难发现问题. 下面我们说下在MVC中的用法 1,首先引入js文件 <script type="text/javascript&qu ...

  5. 3月3日(2) Search Insert Position

    这题...有点简单吧,为什么只有34%的通过率? 题目意思简单说就是查找index,或者按升序插入的未知,WA一次,罪过,下次要特别注意程序里变量的变化,提交前用样例检查. 简单的我有点不好意思贴代码 ...

  6. d3 之值域映射

    <html> <head> <meta charset="utf-8"> <title>d3研究室</title> &l ...

  7. [转]PHP5.5安装PHPRedis扩展

    phpredis是个人觉得最好的一个php-redis客户端,因为其提供的function与redis的命令基本一致,降低的了学习成本,同时功能也很全面. 一.linux安装方法 phpredis下载 ...

  8. MongoDB的安全性

    上篇文章介绍Mongo启动了,一般数据库启动,下面的操作就是登录数据库了,之前测试数据库是否正常安装的时候也登录过数据库,现在回想一下,好像连用户名和密码都没有输入,找几篇帖子来探究下Mongodb的 ...

  9. Node.Js之【Stream 之复制文件问题】

    var fs = require('fs'), path = require('path'), out = process.stdout; var filePath = 'F:/IMG_0221.MO ...

  10. Spark Streaming揭秘 Day19 架构设计和运行机制

    Spark Streaming揭秘 Day19 架构设计和运行机制 今天主要讨论一些SparkStreaming设计的关键点,也算做个小结. DStream设计 首先我们可以进行一个简单的理解:DSt ...