当前位置: 首页 > news >正文

图中点的层次

给定一个 nn 个点 mm 条边的有向图,图中可能存在重边和自环。

所有边的长度都是 11,点的编号为 1∼n1∼n。

请你求出 11 号点到 nn 号点的最短距离,如果从 11 号点无法走到 nn 号点,输出 −1−1。

输入格式

第一行包含两个整数 nn 和 mm。

接下来 mm 行,每行包含两个整数 aa 和 bb,表示存在一条从 aa 走到 bb 的长度为 11 的边。

输出格式

输出一个整数,表示 11 号点到 nn 号点的最短距离。

数据范围

1≤n,m≤1051≤n,m≤105

输入样例:
4 5
1 2
2 3
3 4
1 3
1 4
输出样例:
1
#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
int h[N],e[N],ne[N],idx;//邻接表数据结构
int d[N],st[N];
int n,m;
void add(int a,int b)
{e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
void bfs()
{memset(d,0x3f,sizeof d);d[1]=0;st[1]=1;queue<int> q;q.push(1);while(q.size()){int t=q.front();q.pop();for(int i=h[t];i!=-1;i=ne[i]){int j=e[i];if(!st[j]){d[j]=d[t]+1;q.push(j);st[j]=1;}}}
}
int main()
{cin>>n>>m;memset(h,-1,sizeof h);for(int i=0;i<m;i++){int a,b;cin>>a>>b;add(a,b);}bfs();cout << (d[n] == 0x3f3f3f3f ? -1 : d[n]);//如果到n号节点的距离不是无穷大,输出距离,如果是无穷大,输出-1.
}

 

http://www.lryc.cn/news/431486.html

相关文章:

  • ansible+awx搭建
  • linux环境下安装配置go环境
  • 可交互、会学习、自成长机器人——李德毅院士
  • Redis发布订阅PUB/SUB
  • Scratch教师节 —— 感恩教师节
  • 【60天备战软考高级系统架构设计师——第五天:需求分析方法与工具】
  • 【Hot100算法刷题集】哈希-01-两数之和(暴力枚举再优化,也不是哈希表的对手)
  • 基于.NET6的WPF基础总结(上)
  • Nuxt3入门:资源文件(第2节)
  • 企业微信中嵌套的h5应用调用微信扫码功能
  • Excel如何把表格变成图表
  • HTTP 三、http在springboot中得应用
  • Java秋招面经(网搜版)
  • 【Android】Material Design编写更好的UI
  • 剪辑视频,这四大工具助你一臂之力!
  • 基于单片机的热成像测温显示系统设计
  • CSS系列之Float浮动(二)
  • macos下的 sed命令安装与使用 gnu-sed
  • RLC(电阻、电感、电容)
  • 语音测试(一)ffmpeg视频转音频
  • 计算机网络八股文之TCP协议
  • 【linux】linux中如何通过stress进行压力测试,原理解析与应用实战
  • python用波形显示udp数据实现一个模拟示波器
  • 开源通用验证码识别OCR —— DdddOcr 源码赏析(二)
  • 【个人笔记】VCS工具与命令
  • 面试进去8分钟就出来了,问的问题有点变态。。。
  • 探索MongoDB的Python之钥:pymongo的魔力
  • 【数据结构】顺序表和链表——顺序表(包含丰富算法题)
  • pod基础和镜像拉取策略
  • 53 mysql pid 文件的创建