图练习-BFS-从起点到目标点的最短步数

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描写叙述

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

输入

输入包括多组,每组格式例如以下。
第一行包括两个整数n(n <= 100000),m(m <= 200000)(分别代表n个隘口,这些隘口之间有m个通道)。

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

输出

假设天灾军团能够不修建不论什么通道就到达1号隘口,那么输出最少经过多少通道,否则输出NO。

演示样例输入

2 1
1 2
2 1
2 1

演示样例输出

1
1

提示

第一次用邻接表,无奈结构体数组模拟的没看懂,又不想敲链表,仅仅好用vector实现了,期间我发现了一个问题是。vector定义完要clear一下才干用!不然就是WA
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
typedef struct node
{
int point;
int step;
};
vector <int> p[100010];
bool vis[100010];
void bfs(int n)
{
queue <node> Q;
node t;
t.step=0;
t.point=n;
vis[n]=1;
Q.push(t);
while(!Q.empty())
{
node v=Q.front();Q.pop();
if(v.point==1)
{
printf("%d\n",v.step);
return ;
}
vector <int>::iterator it=p[v.point].begin();
while(it!=p[v.point].end())
{
if(!vis[*it])
{
vis[*it]=1;
t.point=*it;
t.step=v.step+1;
Q.push(t);
}
it++;
}
}
puts("NO");
}
int main()
{
int n,m,u,v;
while(~scanf("%d%d",&n,&m))
{
memset(vis,0,sizeof(vis));
for(int i=1;i<=n;i++)
p[i].clear();//非常重要
while(m--)
{
scanf("%d%d",&u,&v);
if(u!=v)
{
p[u].push_back(v);
p[v].push_back(u);
}
}
bfs(n);
}
return 0;
}


图结构练习——BFS——从起始点到目标点的最短步数(邻接表+BFS)的更多相关文章

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

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

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

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

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

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

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

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

  5. 图的全部实现(邻接矩阵 邻接表 BFS DFS 最小生成树 最短路径等)

    1 /** 2 * C: Dijkstra算法获取最短路径(邻接矩阵) 3 * 6 */ 7 8 #include <stdio.h> 9 #include <stdlib.h> ...

  6. 数据结构学习笔记05图 (邻接矩阵 邻接表-->BFS DFS、最短路径)

    数据结构之图 图(Graph) 包含 一组顶点:通常用V (Vertex) 表示顶点集合 一组边:通常用E (Edge) 表示边的集合 边是顶点对:(v, w) ∈E ,其中v, w ∈ V 有向边& ...

  7. ACM/ICPC 之 数据结构-邻接表+BFS(TSH OJ-无线广播Broadcast)

    这道题中若能够构成互不干扰的区域,其构成的图其实就是汉密尔顿路(Hamilton road),因此如果能够观察出来可以直接转化为汉密尔顿路的存在性证明,即便不能观察,我相信ACMer也能转化为BFS问 ...

  8. 多源D点(邻接表+bfs)

    [问题]给出一颗n个结点的树,树上每条边的边权都是1,这n个结点中有m个特殊点,请你求出树上距离这m个特殊点距离均不超过d的点的数量,包含特殊点本身. 输入: 输入第一行包含三个正整数,n.m.d分别 ...

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

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

随机推荐

  1. java反射,代码优化

    java的反射机制属实强大,能解决好些问题 在接手别人写的代码的时候,有一个bean类的get方法特别low,我都看不下去 重复代码写五遍,我都觉得太不合理.之后将其中代码抽取出来修改了下. publ ...

  2. Unity 游戏开发技巧集锦之创建部分光滑部分粗糙的材质

    Unity 游戏开发技巧集锦之创建部分光滑部分粗糙的材质 创建部分光滑部分粗糙的材质 生活中,有类物体的表面既有光滑的部分,又有粗糙的部分,例如丽江的石板路,如图3-17所示,石板的表面本来是粗糙的, ...

  3. Eigen学习笔记2:C++矩阵运算库Eigen介绍

    Eigen常规矩阵定义 1.使用 Eigen的使用在官网上有详细的介绍,这里对我学习过程中用到的基本操作进行介绍.首先是矩阵的定义.在矩阵类的模板参数共有6个.一般情况下我们只需要关注前三个参数即可. ...

  4. [BZOJ2427][HAOI2010]软件安装(Tarjan+DP)

    2427: [HAOI2010]软件安装 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1987  Solved: 791[Submit][Statu ...

  5. 【DLX算法】hdu3498 whosyourdaddy

    题意:给你一个01矩阵,让你选择尽可能少的行数,使得这些行的并集能够覆盖到所有列. DLX算法求解重复覆盖问题模板,使用估价函数进行剪枝. #include<cstdio> #includ ...

  6. nginx部署ssl证书

    确保nginx有ssl模块,修改nginx.conf文件 在server中添加 listen 443 ssl; #crt文件路径 证书的公钥 ssl_certificate xxx.crt; #key ...

  7. 在活动中使用菜单(Menu)

    任务名称:在活动使用菜单 任务现象:打开程序后,点击菜单按钮会出现2个选项,点击选项时会跳出相对应的提示框 步骤 1.创建一个项目,详细参考:http://8c925c9a.wiz03.com/sha ...

  8. bzoj 2056: gift? 高精度?

    2056: gift? 高精度? Time Limit: 10 Sec  Memory Limit: 1 MB Description   Input 输入的第一行为一个整数t. 接下来t行,每行包含 ...

  9. ruby -- 修改rubymine的字体大小

     rubymine编辑器默认的字体特别小,如何修改rubymine当中的字体大小?  首先,进入 setting\ide setting\editor\colors&fonts\font    ...

  10. mvc 从客户端 中检测到有潜在危险的 Request.Form 值

    天往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误:从客户端(Content="<EM ><STRONG ><U >这是测试这...&qu ...