一、求所有顶点到s顶点的最小步数

 

 //BFS宽度优先搜索
#include<iostream>
using namespace std;
#include<queue>
#define MAX 10000
void BFS(int a[][],int s,int n)//从(si,sj)出发能到的位置以及距离
{
int *flag=new int[n];//顶点是否被遍历过,0未遍历,1已入队,2已出队
int *dist=new int[n];
int i;
for(i=;i<n;i++)
{
flag[i]=;//未被遍历
dist[i]=MAX;
}
dist[s]=;//到本身的距离为0
queue<int> Q;
Q.push(s);flag[s]=;//s入队
while(Q.size())
{
int tmp=Q.front();Q.pop();//头元素取出
for(i=;i<n;i++)
if(a[tmp][i] && !flag[i]) //有边且没遍历
{
dist[i]=dist[tmp]+;
Q.push(i);
flag[i]=;
}
}
for(i=;i<n;i++)
cout<<dist[i]<<' '<<endl; }
int main()
{
int n=;
int a[][]={
,,,,,
,,,,,
,,,,,
,,,,,
,,,,};//是否有边,1有边,0无边
BFS(a,,n);
return ;
}

【BFS宽度优先搜索】的更多相关文章

  1. BFS(宽度优先搜索) -例题

    原题地址 https://vjudge.net/contest/313171     密码:algorithm A - Rescue Angel was caught by the MOLIGPY! ...

  2. 【算法入门】广度/宽度优先搜索(BFS)

    广度/宽度优先搜索(BFS) [算法入门] 1.前言 广度优先搜索(也称宽度优先搜索,缩写BFS,以下采用广度来描述)是连通图的一种遍历策略.因为它的思想是从一个顶点V0开始,辐射状地优先遍历其周围较 ...

  3. 层层递进——宽度优先搜索(BFS)

    问题引入 我们接着上次“解救小哈”的问题继续探索,不过这次是用宽度优先搜索(BFS). 注:问题来源可以点击这里 http://www.cnblogs.com/OctoptusLian/p/74296 ...

  4. BFS算法的优化 双向宽度优先搜索

    双向宽度优先搜索 (Bidirectional BFS) 算法适用于如下的场景: 无向图 所有边的长度都为 1 或者长度都一样 同时给出了起点和终点 以上 3 个条件都满足的时候,可以使用双向宽度优先 ...

  5. 算法基础⑦搜索与图论--BFS(宽度优先搜索)

    宽度优先搜索(BFS) #include<cstdio> #include<cstring> #include<iostream> #include<algo ...

  6. 搜索与图论②--宽度优先搜索(BFS)

    宽度优先搜索 例题一(献给阿尔吉侬的花束) 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫. 今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔 ...

  7. 挑战程序2.1.5 穷竭搜索>>宽度优先搜索

    先对比一下DFS和BFS         深度优先搜索DFS                                   宽度优先搜索BFS 明显可以看出搜索顺序不同. DFS是搜索单条路径到 ...

  8. [宽度优先搜索] FZU-2150 Fire Game

    Fat brother and Maze are playing a kind of special (hentai) game on an N*M board (N rows, M columns) ...

  9. 宽度优先搜索--------迷宫的最短路径问题(dfs)

    宽度优先搜索运用了队列(queue)在unility头文件中 源代码 #include<iostream>#include<cstdio>#include<queue&g ...

随机推荐

  1. 09观察者模式ObServer

    一.什么是观察者模式 Observer模式是行为模式之一,它的作用是当 一个对象的状态发生变化时,能够自动通知其他 关联对象,自动刷新对象状态. Observer模式提供给关联对象一种同步通信的 手段 ...

  2. 【GIS】Vue esri-leaflet

    1.npm install esri-leaflet --save 2.引入包 import Leaflet from "leaflet"; var esri = require( ...

  3. EventFlow.helper.js 事件流程控制

    /*! * 事件流程管理 * version: 1.0.0-2018.07.25 * Requires ES6 * Copyright (c) 2018 Tiac * http://www.cnblo ...

  4. Window应急响应(四):挖矿病毒

    0x00 前言 ​ 随着虚拟货币的疯狂炒作,挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一.病毒传播者可以利用个人电脑或服务器进行挖矿,具体现象为电脑CPU占用率高,C盘可使用空间骤降,电脑温度升 ...

  5. android基础---->子线程更新UI

    和许多其他的GUI 库一样,Android 的UI 也是线程不安全的.也就是说,如果想要更新应用程序里的UI 元素,则必须在主线程中进行,否则就会出现异常.了解AsyncTask的用法,请参见我的博客 ...

  6. 电子书阅读(epub) --- calibre

    https://calibre-ebook.com/download   calibre https://www.fosshub.com/Calibre.html   win 64 bit calib ...

  7. C# 反射(Reflection)

    什么是反射 发射是 .net framework 提供的一个帮助类库,用于读取和使用元数据. 用到的类:System.Reflection,System.Type.System.Type 类对于反射起 ...

  8. db first和code first

    1. db first 是现有数据库,再写代码.根据数据库的表生成类. django里面:python manage.py  inspectdb 2. code first 是先写代码,后创建数据库. ...

  9. 引用了System.Configuration命名空间,却找不到ConfigurationManager类

    用ConfigurationManager类来读取应用程序配置文件的信息时,提示:System.Configuration命名空间下找不到ConfigurationManager类 查过资料后得知:要 ...

  10. thinkphp 点击某个class提交post值,返回回来用一个弹窗插件,提示返回来要说的话

    下一篇文章有讲到弹窗插件的怎么使用,自写教程 如果能帮到你,给点个赞鼓励一下 <=============  控制器  =================> public function ...