Problem 3 Cyh和香穗子

话说,Cyh和香穗子是好朋友,一天他们在fzsz迷路了….Cyh在地点1,香穗子在地点n.由于Cyh是土生土长的fzsz人,所以Cyh准备去n地给香穗子带路.

fzsz是个奇怪的地方,它由n地点组成,并且任意两个地点A,B满足要么A能到B,要么B能到A,要么都不能互相到达,一定不存在A和B都能互相到达.

现在Cyh希望快点到达n地

输入:

第一行两个数n,m

接下来m行,每行两个数a,b,表示地点a能达到地点b

输出:

Cyh最少经过的地点数

Sample Input

4 5

1 2

2 3

2 4

1 3

3 4

Sample Output

3

数据范围:

n<=100000,m<=500000,保正有解

可以用spfa求最短路

这里写宽搜的代码,很标准的题目

C++ Code

/*
C++ Code
http://oijzh.cnblogs.com
*/
#include<cstdio>
#include<cstdlib>
#include<queue>
using namespace std;
#define MAXN 100010int n,m;
struct link{int y;link* next;};
link *head[MAXN];
bool h[MAXN];
struct record{int pos,step;};
queue<record>q;void insert(int x,int y)
{link *node=new link;node->y=y;node->next=head[x];head[x]=node;
}int main()
{freopen("3.in","r",stdin);freopen("3.out","w",stdout);scanf("%d%d",&n,&m);int i,x,y;for(i=1;i<=m;i++){scanf("%d%d",&x,&y);insert(x,y);}record temp,newtmp;link* node;temp.pos=1;temp.step=1;h[1]=true;q.push(temp);while(!q.empty()){temp=q.front();q.pop();node=head[temp.pos];while(node){y=node->y;if(!h[y]){newtmp.pos=y;newtmp.step=temp.step+1;if(y==n){printf("%d",newtmp.step);exit(0);}h[y]=true;q.push(newtmp);}node=node->next;}}return 0;
}

转载于:https://www.cnblogs.com/oijzh/archive/2012/10/14/2723361.html

【广搜】Cyh和香穗子相关推荐

  1. Cyh和香穗子(NDK1352)

    Cyh和香穗子 Time Limit:10000MS  Memory Limit:65536K Total Submit:14 Accepted:8 Description 话说,Cyh和香穗子是好朋 ...

  2. Go 分布式学习利器(15) -- Go 实现 深搜和广搜

    强化语法,回顾算法. 通过Go语言实现 深度优先搜索 和 广度优先搜索,来查找社交网络中的三度好友关系(三度指的是一个节点到 其相邻节点 到 其相邻节点的节点 ,图递增三层好友关系). 涉及到的Go语 ...

  3. 搜索:广搜 词语阶梯

    问题描述以及解决过程如下导图 广搜实现如下 #include <iostream> #include <algorithm> #include <vector> # ...

  4. [NC23486]小A与小B 双向广搜

    题解:这个题属于走迷宫类型问题的一个升级版吧,不同之处在于一秒钟小A走一步,小B可以走两步,这两种事件是同时发生的,所以我们每秒钟让A扩散一步,让B扩散两步. 两个人走过的路径分别用 visited[ ...

  5. 【图论专题】BFS中的双向广搜 和 A-star

    双向广搜 AcWing 190. 字串变换 #include <cstring> #include <iostream> #include <algorithm> ...

  6. [数据结构] 迷宫问题(栈和队列,深搜和广搜)

    代码: #include <iostream> #include <string.h> #include <stack> #include <queue> ...

  7. UVA 122 Trees on the level 二叉树 广搜

    题目链接: https://vjudge.net/problem/UVA-122 题目描述: 给你一种二叉树的构造方法, 让你逐层输出二叉树的节点值, 如果不能够则输出"not comple ...

  8. hrbust 1616 密码锁(广搜)

    分析:广搜,每个四位数作为一个状态,从每个状态扩展出其他的几种状态并累加步数之后加入队列. 1 #include <stdio.h> 2 #include <string.h> ...

  9. [kuangbin] M - Find a way(简单广搜)

    题目链接:https://vjudge.net/contest/215603#problem/M 其中三维数组dis将两个广搜合并到了一起 #include<iostream> #incl ...

最新文章

  1. android表视图,android – 列表视图与表格布局
  2. poj 3984 迷宫问题 BFS
  3. linux vi文本类常用命令
  4. 在nodejs中操作mongodb
  5. java drawstring字体大小,JAVA中,drawstring 方法的用法,格式是什么啊
  6. advanced installer更换程序id_好程序员web前端培训分享kbone高级-事件系统
  7. 2022 USNews全美大学排行榜出炉!普林斯顿霸榜,哥大哈佛MIT并列第二
  8. eclipse中启动tomcat的项目路径
  9. 日期处理string 与 DateTime相互转化
  10. 理解mini-batch、Momentum、RMSpror、Admin优化算法
  11. C++ 友元函数 友元类 friend class
  12. Spatial-Temporal时间序列预测建模方法汇总
  13. “大圆满”之前行--从概念到知识再到计算的共生【原力】_目录规划与提要
  14. linux中竖线'|',双竖线‘||’,和的意思
  15. android x86 uc,UC浏览器X86版下载|UC浏览器X86版老版 V10.8.5 安卓版 下载_当下软件园_软件下载...
  16. 『Photo Shop实用技巧』之 去除红眼
  17. 五个成人必看的故事!
  18. 我的世界java边境之地_我的世界边境之地是否存在 我的世界边境之地大揭秘
  19. [ 和你一起终身学习]---家长也是需要学习,需要成长的
  20. Network Slimming——有效的通道剪枝方法(Channel Pruning)

热门文章

  1. 【毕业设计day05】精析代码
  2. 《象与骑象人听书笔记》
  3. golang性能调优工具pprof的使用
  4. C2C、B2B、B2C解释(转)
  5. GPS/BD陶瓷天线
  6. python写一个爬虫、爬取网站漫画信息_python爬取漫画
  7. 数据中心模块化、标准化、预制化、定制化、智能化……傻傻分不清楚?大咖来帮你!...
  8. 看见·先行者 | 织音App率先接入即构在线KTV实时合唱解决方案
  9. 使用C#VB.NET将XPS转换为JPG或PNG图像
  10. P3400【仓鼠窝 】