SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )
图练习-BFS-从起点到目标点的最短步数
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
输入
输出
示例输入
2 1
1 2
2 1
2 1
示例输出
1
1 代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std; vector<int>q[100001]; //基于vector二维数组的BFS模拟遍历 void BFS(int n)
{
bool vis[100001];
memset(vis, false, sizeof(vis));
queue<int>p;
p.push(n);
vis[n]=true;
int dd;
vector<int>::iterator it;
int flag=0;
int cnt[100001];
memset(cnt, 0, sizeof(cnt)); while(!p.empty())
{
dd=p.front();
p.pop();
for(it=q[dd].begin(); it!=q[dd].end(); it++ )
{
if(vis[*it]==false)
{
cnt[*it]=cnt[dd]+1; p.push(*it);
vis[*it]=true;
if(*it==1)
{
flag=1; break;
}
}
}
if(flag==1)
break;
}
if(flag==0 )
printf("NO\n");
else
printf("%d\n", cnt[1] );
} int main()
{
int n, m;
int u, v;
int i, j; while(scanf("%d %d", &n, &m)!=EOF)
{ for(i=0; i<=100000; i++)
{
q[i].clear();
}
for(i=0; i<m; i++)
{
scanf("%d %d", &u, &v );
q[u].push_back(v);
q[v].push_back(u);
}
BFS(n);
}
return 0;
} /**************************************
Problem id : SDUT OJ 2830
Result : Accepted
Take Memory : 8312K
Take Time : 460MS
Submit Time : 2015-01-18 09:39:14
**************************************/
SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )的更多相关文章
- 图结构练习——BFS——从起始点到目标点的最短步数(邻接表+BFS)
图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描写叙述 在古老的魔兽传说中.有两个军团,一个 ...
- 图练习-BFS-从起点到目标点的最短步数(sdut 2830)邻接边表
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2830 题目描述 在古老的魔兽传说中,有两个军团 ...
- 图练习-BFS-从起点到目标点的最短步数
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2830 简单bfs #include <s ...
- SDUT OJ 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
数据结构实验之图论五:从起始点到目标点的最短步数(BFS) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss P ...
- 数据结构学习笔记05图 (邻接矩阵 邻接表-->BFS DFS、最短路径)
数据结构之图 图(Graph) 包含 一组顶点:通常用V (Vertex) 表示顶点集合 一组边:通常用E (Edge) 表示边的集合 边是顶点对:(v, w) ∈E ,其中v, w ∈ V 有向边& ...
- SDUT-2139_从起始点到目标点的最短步数(BFS)
数据结构实验之图论五:从起始点到目标点的最短步数(BFS) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在古老的魔兽 ...
- 九度OJ 题目1384:二维数组中的查找
/********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...
- c/c++ 图相关的函数(二维数组法)
c/c++ 图相关的函数(二维数组法) 遍历图 插入顶点 添加顶点间的线 删除顶点 删除顶点间的线 摧毁图 取得与v顶点有连线的第一个顶点 取得与v1顶点,v1顶点之后的v2顶点的之后的有连线的第一个 ...
- c/c++ 图的创建(二维数组法)
c/c++ 图的创建(二维数组法) 图的概念 图由点和线组成 知道了图中有多少个点,和哪些点之间有线,就可以把一张图描绘出来 点之间的线,分有方向和无方向 创建图 创建图,实际就是创建出节点,和节点之 ...
随机推荐
- scrapy框架之comand line tool
一 Global Command 1 startproject https://docs.scrapy.org/en/latest/topics/commands.html#startproject ...
- Honey Heist
5092: Honey Heist 时间限制: 1 Sec 内存限制: 128 MB 题目描述 0x67 is a scout ant searching for food and discover ...
- 线段树练习5(codevs 4927)
题目描述 Description 有n个数和5种操作 add a b c:把区间[a,b]内的所有数都增加c set a b c:把区间[a,b]内的所有数都设为c sum a b:查询区间[a,b] ...
- Security arrangements for extended USB protocol stack of a USB host system
Security arrangements for a universal serial bus (USB) protocol stack of a USB host system are provi ...
- Redis的内部运作机制
本文将分五个部分来分析和总结Redis的内部机制,分别是:Redis数据库.Redis客户端.Redis事件.Redis服务器的初始化步骤.Redis命令的执行过程. 首先介绍一下Redis服务器的状 ...
- CSV模块
Python csv模块的使用 1.csv简介 CSV (Comma Separated Values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本 格式,用以存储表格数 ...
- Linux 下 GCC 编译共享库控制导出函数的方法
通过一些实际项目的开发,发现这样一个现象,在 Windows 下可以通过指定 __declspec(dllexport) 定义来控制 DLL(动态链接库)中哪些函数可以导出,暴露给其他程序链接使用,哪 ...
- SELinux 服务检查与关闭
查看SELinux状态: 1./usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 SELinux status: ...
- css3的一些新属性及部分用法
CSS3是CSS(层叠样式表)技术的升级版本,增加了很多新属性,我们在web开发中采用css3技术可以提高程序的性能以及用户体验.而且一般面试中会问到知道哪些新增加的属性,我们不可能将所有东西一一复述 ...
- P3378 堆【模板】 洛谷
https://www.luogu.org/problem/show?pid=3378 题目描述 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 ...