从起始点到目标点的最短步数(BFS)
Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description
在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1…n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关通道到达近卫军团展开攻击;如果可以的话,最少需要经过多少通道。由于n的值比较大(n<=1000),于是巫妖王找到了擅长编程的你 =_=,请你帮他解决这个问题,否则就把你吃掉变成他的魔法。为了拯救自己,赶紧想办法吧。

Input
输入包含多组,每组格式如下。

第一行包含两个整数n,m(分别代表n个隘口,这些隘口之间有m个通道)。

下面m行每行包含两个整数a,b;表示从a出发有一条通道到达b隘口(注意:通道是单向的)。

Output
如果天灾军团可以不修建任何通道就到达1号隘口,那么输出最少经过多少通道,否则输出NO。

Sample Input
2 1
1 2
2 1
2 1
Sample Output
NO
1

#include <stdio.h>
#include<stdlib.h>
#include<iostream>
#include <string.h>
#include <queue>
using namespace std;
struct node
{int step,position;
};
node t;
int visited[1001],bian[1001][1001],n,step;
queue<node>q;
void BFS()
{while(!q.empty()){t=q.front();step=t.step;if(t.position==1)break;q.pop();for(int i=1;i<n;i++){if(!visited[i]&&bian[t.position][i]==1){node next;next.step=(step+1);next.position=i;q.push(next);}}}
}
int main()
{int m,a,b;while(cin>>n>>m){while(!q.empty())q.pop();memset(visited,0,sizeof(visited));memset(bian,0,sizeof(bian));while(m--){cin>>a>>b;bian[a][b]=1;}visited[n]=1;t.step=0;t.position=n;q.push(t);BFS();if(t.position==1)cout<<t.step<<endl;elsecout<<"NO"<<endl;
}return 0;
}

从起始点到目标点的最短步数(BFS)相关推荐

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

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

  2. 2139图结构练习——BFS——从起始点到目标点的最短步数

    图结构练习--BFS--从起始点到目标点的最短步数 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...

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

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

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

    1 #include<stdio.h> 2 #include<string.h> 3 int map[1000][1000],visit[1000]; 4 int step,m ...

  5. 图结构练习——BFS——从起始点到目标点的最短步数

    题目描述 在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫.在他们所在的地域,有n个隘口,编号为1..n,某些隘口之间是有通道连接的.其中近卫军团在1号隘口,天灾军团在n号隘口.某一天,天灾军团 ...

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

    Description 在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫.在他们所在的地域,有n个隘口,编号为1-n,某些隘口之间是有通道连接的.其中近卫军团在1号隘口,天灾军团在n号隘口.某一 ...

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

    Description 在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫.在他们所在的地域,有n个隘口,编号为1-n,某些隘口之间是有通道连接的.其中近卫军团在1号隘口,天灾军团在n号隘口.某一 ...

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

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

  9. 题目1335:闯迷宫( BFS在求解最短路径或者最短步数上有很多的应用)

    题目描述: sun所在学校每年都要举行电脑节,今年电脑节有一个新的趣味比赛项目叫做闯迷宫. sun的室友在帮电脑节设计迷宫,所以室友就请sun帮忙计算下走出迷宫的最少步数. 知道了最少步数就可以辅助控 ...

最新文章

  1. Android Toolbar 标题居中及字体样式自定义
  2. 微信小程序中input和picker之间切换导致input无法失去焦点
  3. CRMEB后台前端文档说明
  4. Oracle使用impdb/expdb数据泵导入/导出数据库
  5. ubuntu终端下快捷键,字体放大缩小等【逐渐完善篇】
  6. oracle安装pdb报错,oracle12安装后pdb创建的用户无法连接
  7. Java高并发编程详解系列-ThreadAPI简单说明
  8. 过滤器如何配置(javax.servlet.Filter)?
  9. 使用JQuery快速高效制作网页交互特效 第十一章 蔚蓝网项目
  10. 全国省级地级县级行政区sql与json数据
  11. 将强化学习应用到量化投资中实战篇(学习模块开发上)
  12. 关于PCBLayout的一些具体细节的认识(能力有限,请大家多多指点)
  13. python数据分析:会员数据化运营(上)——知识点
  14. word批量删除单选、多选题的答案
  15. notepad++安装(kali 64位)
  16. python生兔子问题(递归算法)_python 实现兔子生兔子示例
  17. Linux: 关于 SIGCHLD 的更多细节
  18. Ubuntu 20.04 : 几个BT下载软件和命令
  19. 【某集训题解】【DAY 2 T3】与非
  20. CodeForces_29B

热门文章

  1. async spring 默认线程池_SpringBoot中Async异步方法和定时任务介绍
  2. jQuery HTML操作
  3. IOError: encoder jpeg not available
  4. ~~队列(数据结构)(附模板题 AcWing 829. 模拟队列)
  5. 《南溪的目标检测学习笔记》——目标检测的评价指标(mAP)
  6. 东大OJ-最大子序列问题的变形
  7. masaic 数据增强代码
  8. AcWing 1209. 带分数(排列型枚举)
  9. 【多线程】CAS乐观锁
  10. 程序员,你会说话吗?