http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2830

简单bfs

 #include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
using namespace std;
const int N=;
int head[N],vis[N];
int cnt = ;
struct Edge
{
int u,v;
int next;
} edge[*N];
struct node
{
int x,step;
node(int x,int step):x(x),step(step) {}
};
void add(int u,int v)
{
edge[cnt].u = u;
edge[cnt].v = v;
edge[cnt].next = head[u];
head[u] = cnt++;
}
int bfs(int n)
{
memset(vis,,sizeof(vis));
queue<node>q;
node s(n,);
q.push(s);
vis[n] = ;
while(!q.empty())
{
node u = q.front();
q.pop();
if (u.x==)
return u.step;
for (int j = head[u.x]; j!=-; j=edge[j].next)
{
int v = edge[j].v;
if (!vis[v])
{
q.push(node(v,u.step+));
vis[v] = ;
}
}
}
return -;
}
int main()
{
int n,m;
int u,v;
while(~scanf("%d%d",&n,&m))
{
cnt = ;
memset(vis,,sizeof(vis));
memset(head,-,sizeof(head));
for (int i = ; i < m; i++)
{
scanf("%d%d",&u,&v);
add(u,v);
add(v,u);
}
int ans = bfs(n);
if (ans==-)
puts("NO");
else
printf("%d\n",ans);
}
return ;
}

图练习-BFS-从起点到目标点的最短步数的更多相关文章

  1. SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )

    图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...

  2. 图结构练习——BFS——从起始点到目标点的最短步数(邻接表+BFS)

    图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述 在古老的魔兽传说中.有两个军团,一个 ...

  3. 图练习-BFS-从起点到目标点的最短步数(sdut 2830)邻接边表

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2830 题目描述 在古老的魔兽传说中,有两个军团 ...

  4. SDUT-2139_从起始点到目标点的最短步数(BFS)

    数据结构实验之图论五:从起始点到目标点的最短步数(BFS) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在古老的魔兽 ...

  5. SDUT OJ 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)

    数据结构实验之图论五:从起始点到目标点的最短步数(BFS) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss P ...

  6. 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)

    分析:有向图里面找最短路径,原理就是每一步都走距离自己最近的路, 一旦发现走一步可以到,那么这个一定是最短的. #include <bits/stdc++.h> using namespa ...

  7. ACM:图的BFS,走迷宫

    题目: 一个网格迷宫由n行m列的单元格组成,每一个单元格要么是空地(用1表示),要么是障碍物(用0来表示).你的任务是找一条从起点到终点的最短移动序列,当中UDLR分别表示往上.下.左.右移动到相邻单 ...

  8. UVA-10047 The Monocycle (图的BFS遍历)

    题目大意:一张图,问从起点到终点的最短时间是多少.方向转动也消耗时间. 题目分析:图的广度优先遍历... 代码如下: # include<iostream> # include<cs ...

  9. 【数据结构与算法】自己动手实现图的BFS和DFS(附完整源码)

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/19617187 图的存储结构 本文的重点在于图的深度优先搜索(DFS)和广度优先搜索(BFS ...

随机推荐

  1. moongoTemplate使用

          添加依赖   <dependency> <groupId>org.springframework.boot</groupId> <artifact ...

  2. C++ 类的初始化列表

    class Animal{public: Animal(int weight,int height): //A初始化列表 m_weight(weight), m_height(height) { } ...

  3. QQ浏览器占用资源真的大

    Edge 和 QQ浏览器 对比 正常情况下: QQ浏览器 看1个直播频道 ,CPU就几乎是在90% usage 范围 ,看2 个 就非常卡 下面就是对比图 Edge 我个人觉得 Edge 比 QQ好用 ...

  4. 每日命令:(10)cat

    cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. 1.命令格式: cat [选项] [文件] ...

  5. streamwise veloicty along the jet axis using Matlab/Octave

    input file: v.csv scpirts as follows filename='v.csv'; % assign file to a variable m=csvread(filenam ...

  6. type="timestamp"与type="date"区别

    type="timestamp"-----数据库中保存的时间为年月日时分秒 与type="date"---------数据库中保存的时间为年月日

  7. CodeForces 367E Sereja and Intervals

    CodeForces 3 67E (109 + 7). Two ways are considered distinct if there is such j(1 ≤ j ≤ n), that the ...

  8. 银河英雄传说 2002年NOI全国竞赛

    时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年 ...

  9. Codeforces Goodbye2016

    A =w= B 0.0 C 题意:按顺序给出一个人一年参加cf比赛的信息,包括是div1还是div2,赛后rating的增减多少,求出这个人现在rating最多可能为多少 分析:模拟 设这个人刚开始分 ...

  10. nodejs 安装express

    在命令行中执行 "npm install -g express"等待下载并且自动完成安装.测试express完成安装的一个方法就是查看其版本号,执行命令 “express -V”正 ...