队列

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
const int N = ;
int n, m;
int h[N], e[N], ne[N], idx;
int d[N];
void add(int a, int b) {
e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ;
}
int bfs() {
memset(d, -, sizeof d);
queue<int> q;
d[] = ;
q.push();
while (q.size()) {//当队列不空
int t = q.front();//取得队头
q.pop();
for (int i = h[t]; i != -; i = ne[i]) {
int j = e[i];//j扩展
if (d[j] == -) {//如果没有被遍历过
d[j] = d[t] + ;//扩展
q.push(j);//插入
}
}
}
return d[n];
}
int main() {
scanf("%d%d", &n, &m);
memset(h, -, sizeof h);
for (int i = ; i < m; i ++ ) {
int a, b;
scanf("%d%d", &a, &b);
add(a, b);
}
cout << bfs() << endl;
return ;
}

模拟队列

#include<bits/stdc++.h>
using namespace std ;
const int N=;
int n,m;
int h[N],e[N],ne[N],idx;
int d[N],q[N];
void add(int a,int b)
{
e[idx]=b;
ne[idx]=h[a];
h[a]=idx++;
}
int bfs()
{
int hh=,tt=;
q[]=;
memset(d,-,sizeof d);
d[]=;
while(hh<=tt)//当队列不空
{
int t=q[hh++];//取队头
for(int i=h[t];i!=-;i=ne[i])//扩展
{
int j=e[i];
if(d[j]==-)
{
d[j]=d[t]+;
q[++tt]=j;
}
}
}
return d[n];
}
int main()
{
cin>>n>>m;
memset(h,-,sizeof h);
for(int i=;i<m;i++)
{
int a,b;
cin>>a>>b;
add(a,b);
}
cout<<bfs()<<endl;
}

最新文章

  1. angularJS(2)
  2. Mac下安装LNMP(Nginx+PHP5.6)环境
  3. mono+jexus 验证码不显示:System.Drawing
  4. Which Python memory profiler is recommended
  5. POJ2299Ultra-QuickSort (线段树和归并排序的解法)
  6. HBase的Shell操作
  7. 使用Spring Profile和Mybatis进行多个数据源(H2和Mysql)的切换
  8. BZOJ 2442: [Usaco2011 Open]修剪草坪
  9. Creating a Navigation Drawer 创建一个导航侧边栏
  10. new Date()在IE,谷歌,火狐上的一些注意项
  11. 浙江大学PAT考试1069~1072(2013-11-2)
  12. React使用小结
  13. mySQL、mariaDB、noSQL、SQL server、redis之间是什么关系?
  14. Linux 中磁盘阵列RAID10配置
  15. 滴水穿石-01JAVA和C#的区别
  16. Unity容器中AOP应用示例程序
  17. CentOS配置多公网
  18. ueditor 使用
  19. Dom捕捉事件和冒泡事件-原理与demo测试
  20. BIOS备忘录之通过Windbg来追踪ASL code的运行

热门文章

  1. linux基础安全
  2. linux多线程编程的应用场景
  3. PHP实现微信公众号分享接口
  4. anki
  5. SCSS的基本操作
  6. 心里没点B树,怎能吃透数据库索引底层原理?
  7. C++记录(二)
  8. linux centos7环境下安装apache2.4+php5.6+mysql5.6 安装及踩坑集锦
  9. 【PAT甲级】1116 Come on! Let&#39;s C (20分)
  10. [SDOI2012]任务安排 - 斜率优化dp