数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
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)相关推荐
- SDUT OJ 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
数据结构实验之图论五:从起始点到目标点的最短步数(BFS) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss P ...
- 从起始点到目标点的最短步数(BFS)
从起始点到目标点的最短步数(BFS) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在古老的魔兽传说中,有两个军团,一 ...
- 2139图结构练习——BFS——从起始点到目标点的最短步数
图结构练习--BFS--从起始点到目标点的最短步数 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...
- 2139=数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
1 #include<stdio.h> 2 #include<string.h> 3 int map[1000][1000],visit[1000]; 4 int step,m ...
- sdut_2139 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
Description 在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫.在他们所在的地域,有n个隘口,编号为1-n,某些隘口之间是有通道连接的.其中近卫军团在1号隘口,天灾军团在n号隘口.某一 ...
- 图结构练习——BFS——从起始点到目标点的最短步数
题目描述 在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫.在他们所在的地域,有n个隘口,编号为1..n,某些隘口之间是有通道连接的.其中近卫军团在1号隘口,天灾军团在n号隘口.某一天,天灾军团 ...
- 图结构练习——BFS——从起始点到目标点的最短步数(邻接表+BFS)
图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...
- 数据结构实验之图论四:迷宫探索_迷宫搜索类的双向bfs问题(例题详解)
前言 文章若有疏忽还请指正! 更多精彩还请关注公众号:bigsai 头条号:一直码农一直爽 在搜索问题中,以迷宫问题最具有代表性,无论是八皇后的回溯问题,还是dfs找出口,bfs找最短次数等等题目的问 ...
- 数据结构实验之图论三:判断可达性
/*[添加链接描述](http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/2139.html)*/ 数 ...
最新文章
- java设计模式---合成模式
- ASP.NET完整打包卸载更新攻略(By Installshield 2010)【转】
- Nginx核心要领五:worker_processes、worker_connections设置
- 前端学习(3284):立即执行函数三
- golang 数组、指针数组、数组指针使用总结
- ModelSerializer序列化(Apiview)
- 书摘---创业36条军规6:管理的九个问题
- appium简明教程
- Windows下测试算法在FDDB数据库的性能
- windows10 家庭版U盘安装教程
- win7 64位 纯净版旗舰版202104
- 3dmax如何呈现Z频道
- Hibernate之load和get的区别
- Witt向量简介 §3.2.1:模理想同余简述
- C/Cpp贪吃蛇(数组)
- 【Python实战】--词云制作
- java得物公司面试怎么样,得物app
- numpy中的max和maximum
- 多级报表 php,电力设备生产数据的多层分组统计报表实现
- java毕业生设计信贷管理系统计算机源码+系统+mysql+调试部署+lw
热门文章
- 将matlab的.m文件打包为独立可执行程序.exe —— 基于Matlab R2015b
- android源码出现的@字符意义总结
- 一块钱哪里去了?--java浮点型背后的故事
- Maven报错Missing artifact jdk.tools:jdk.tools:jar:1.7--转
- Java多线程编程模式实战指南(三):Two-phase Termination模式--转载
- 漫说代理模式---给宝宝成长护航
- JVM执行篇:使用HSDIS插件分析JVM代码执行细节--转
- 【项目实战】:Python 商铺地址分布数据分析
- Arcface v1 论文翻译与解读
- 最后一期:如何更新LSTM模型?(附代码)| 博士带你学LSTM