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

Output

NO
1

#include<bits/stdc++.h>using namespace std;const int N = 1111;
int n, m;
int mp[N][N];
int vis[N];void bfs(int beg)
{queue<int>q;q.push(beg);int top;while(!q.empty()){top = q.front();q.pop();for(int i = 1; i < n; i++){if(!vis[i] && mp[top][i]){q.push(i);vis[i] = vis[top] + 1;}}}
}int main()
{while(cin >> n >> m){memset(vis, 0, sizeof(vis));memset(mp, 0, sizeof(mp));for(int i = 0; i < m; i++){int u, v;cin >> u >> v;mp[u][v] = 1;}bfs(n);if(vis[1] == 0 && n!= 1)cout << "NO" << endl;elsecout << vis[1] << endl;}return 0;
}

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

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

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

  2. 从起始点到目标点的最短步数(BFS)

    从起始点到目标点的最短步数(BFS) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在古老的魔兽传说中,有两个军团,一 ...

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

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

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

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

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

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

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

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

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

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

  8. 数据结构实验之图论四:迷宫探索_迷宫搜索类的双向bfs问题(例题详解)

    前言 文章若有疏忽还请指正! 更多精彩还请关注公众号:bigsai 头条号:一直码农一直爽 在搜索问题中,以迷宫问题最具有代表性,无论是八皇后的回溯问题,还是dfs找出口,bfs找最短次数等等题目的问 ...

  9. 数据结构实验之图论三:判断可达性

    /*[添加链接描述](http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/2139.html)*/ 数 ...

最新文章

  1. java设计模式---合成模式
  2. ASP.NET完整打包卸载更新攻略(By Installshield 2010)【转】
  3. Nginx核心要领五:worker_processes、worker_connections设置
  4. 前端学习(3284):立即执行函数三
  5. golang 数组、指针数组、数组指针使用总结
  6. ModelSerializer序列化(Apiview)
  7. 书摘---创业36条军规6:管理的九个问题
  8. appium简明教程
  9. Windows下测试算法在FDDB数据库的性能
  10. windows10 家庭版U盘安装教程
  11. win7 64位 纯净版旗舰版202104
  12. 3dmax如何呈现Z频道
  13. Hibernate之load和get的区别
  14. Witt向量简介 §3.2.1:模理想同余简述
  15. C/Cpp贪吃蛇(数组)
  16. 【Python实战】--词云制作
  17. java得物公司面试怎么样,得物app
  18. numpy中的max和maximum
  19. 多级报表 php,电力设备生产数据的多层分组统计报表实现
  20. java毕业生设计信贷管理系统计算机源码+系统+mysql+调试部署+lw

热门文章

  1. 将matlab的.m文件打包为独立可执行程序.exe —— 基于Matlab R2015b
  2. android源码出现的@字符意义总结
  3. 一块钱哪里去了?--java浮点型背后的故事
  4. Maven报错Missing artifact jdk.tools:jdk.tools:jar:1.7--转
  5. Java多线程编程模式实战指南(三):Two-phase Termination模式--转载
  6. 漫说代理模式---给宝宝成长护航
  7. JVM执行篇:使用HSDIS插件分析JVM代码执行细节--转
  8. 【项目实战】:Python 商铺地址分布数据分析
  9. Arcface v1 论文翻译与解读
  10. 最后一期:如何更新LSTM模型?(附代码)| 博士带你学LSTM