847. 图中点的层次

server/2024/9/20 4:01:58/ 标签: 算法, bfs, 最短距离

847. 图中点的层次

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环。
所有边的长度都是 1,点的编号为 1∼n。

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

输入格式
第一行包含两个整数 n和 m。

接下来 m行,每行包含两个整数 a和 b,表示存在一条从 a
走到 b的长度为 1的边。

输出格式
输出一个整数,表示 1号点到 n号点的最短距离

数据范围
1≤n,m≤105
输入样例:
4 5
1 2
2 3
3 4
1 3
1 4
输出样例:
1

#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>#define x first
#define y secondusing namespace std;typedef pair<int,int> pii;const int N = 1e5+10;int n,m;
int h[N],e[N],ne[N],idx;
int d[N];
int q[N];void add(int a,int b){e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}int bfs(){memset(d,-1,sizeof d);d[1]=0;q[0]=1;int hh=0,tt=0;while(hh<=tt){int t=q[hh++];for(int i=h[t];~i;i=ne[i]){int j=e[i];if(d[j]==-1){d[j]=d[t]+1;q[++tt]=j;}}}return d[n];
}int main(){cin>>n>>m;memset(h,-1,sizeof h);while(m--){int a,b;cin>>a>>b;add(a,b);}cout<<bfs()<<endl;return 0;
}

http://www.ppmy.cn/server/117314.html

相关文章

idea连接数据库大避雷!!!

再跟着黑马学习的时候&#xff0c;用黑马的资料安装的数据库&#xff0c;命令行能正常启动&#xff0c;SQLyog也能正常连接&#xff0c;就是tmd idea连接不了。不论是原始的jdbc,还是其它方式都不行&#xff0c;一直报错&#xff1a; 然后就各种搜&#xff0c;有的说数据库驱动…

Qt中QGraphicsView窗口大小与视图大小的关系

在Qt框架中&#xff0c;QGraphicsView窗口和视图的大小之间存在一定的关系。为了更好地理解这种关系&#xff0c;我们可以从以下几个方面来阐述&#xff1a; 1. 窗口大小 定义&#xff1a;窗口大小指的是QGraphicsView部件在屏幕上占据的矩形区域的大小。它由宽度和高度两个维…

神经网络卷积层和最大池化

文章目录 一、卷积层原理二、相关函数的概念三、卷积层的应用四、最大池化原理五、最大池化案例 一、卷积层原理 ./ 当前目录&#xff1b;…/ 上级目录 父类&#xff08;也称为基类或超类&#xff09;是指在类继承体系中被其他类继承的类。也就是被其他子类进行调用的类 当In_…

【计算机网络 - 基础问题】每日 3 题(六)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

JavaEE:文件内容操作(二)

文章目录 文件内容操作读文件(字节流)read介绍read() 使用read(byte[] b) 使用 read(byte[] b, int off, int len) 使用 写文件(字节流)write介绍write(int b) 使用write(byte[] b) 使用write(byte[] b, int off, int len) 使用 读文件(字符流)read() 使用read(char[] cbuf) 使…

解决antd-design-vue给选择组件a-select下拉菜单ant-select-dropdown设置样式不生效

实现效果&#xff1a;正常a-select会根据分辨率、缩放比例动态计算位置等&#xff0c;现在web端已经实现自适应分辨率&#xff0c;需要给下拉菜单设置固定的定位和宽度等样式&#xff0c;不让组件自动瞎设置定位、大小 1、a-select组件加上:getPopupContainer"(triggerNo…

Python 数据分析与可视化

在当今的数据驱动时代&#xff0c;数据分析与可视化已成为各行各业的重要工具。Python凭借其强大的数据处理能力和丰富的可视化库&#xff0c;成为数据分析的热门语言。本指南将为您提供Python数据分析与可视化的基础知识、实用技巧和实际操作案例&#xff0c;帮助您快速上手。…

Centos7 Hadoop 单机版安装教程(图文)

本章教程,主要记录如何在Centos7中安装Hadoop单机版。 一、软件安装包和基础环境 CentOS7.x,jdk8,hadoop 通过网盘分享的文件:Hadoop 链接: https://pan.baidu.com/s/1_qGI9QeXMAJNb3TydHhQGA?pwd=xnz4 提取码: xnz4 当然你也可以自己去官网下载。 java8:https://www.ora…

先有正态分布,还是先有高斯函数?

正态分布&#xff08;也称为高斯分布&#xff09;是由德国数学家卡尔弗里德里希高斯在研究天文学中的误差分布时提出的。而高斯函数通常指的是正态分布的概率密度函数&#xff0c;它是描述正态分布特性的一个数学表达式。因此&#xff0c;可以明确地说&#xff0c;是先有正态分…

MyBatis-Plus插入优化:降低IO操作的策略与实践

在使用MyBatis-Plus进行数据库操作时&#xff0c;我们常常面临插入操作需要频繁执行的场景。特别是在处理大量数据时&#xff0c;这种频繁的插入操作不仅会导致显著的IO开销&#xff0c;还可能影响系统的性能和响应时间。本文将探讨如何通过优化策略降低这些IO操作&#xff0c;…

VS Code 配置 Rust-Analyzer 报错

报错信息&#xff1a; Bootstrap Error" rust-analyzer requires glibc > 2.28 in latest build. 参考了好多地方&#xff0c; https://github.com/rust-lang/rust-analyzer/issues/11558 https://blog.csdn.net/aLingYun/article/details/120923694 https://rust-anal…

IDEA 通义灵码 插件使用体验

目录 前言 主要功能 演示代码 解释代码 生成单元测试 生成代码注释 生成优化建议 代码片段补全 总结 前言 自从 AI 技术开始大规模应用&#xff0c;老板就想让下面的牛马借助 AI 工具来提高编码效率&#xff0c;由于团队都没有在实际编码中深度使用过 AI 工具&#x…

线性规划------ + 案例 + Python源码求解(见文中)

目录 一、代数模型&#xff08;Algebraic Models&#xff09;详解1.1什么是代数模型&#xff1f;1.2代数模型的基本形式1.3 安装所需要的Python包--运行下述案例1.4代数模型的应用案例案例 1&#xff1a;市场供需平衡模型Python求解代码Python求解结果如下图&#xff1a; 案例 …

[译] 当Go程序结束时会发生什么

本篇内容是根据2021年2月份When Go programs end音频录制内容的整理与翻译,两位主持人邀请Go团队的Michael Knyszek,讨论了当Go程序结束时会发生什么 过程中为符合中文惯用表达有适当删改, 版权归原作者所有. Mat Ryer: 大家好&#xff0c;欢迎收听 Go Time。我是 Mat Ryer。今…

sql刷题常用函数

ROW_NUMBER() ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...) 是一个窗口函数&#xff0c;用于生成每个分组内的唯一行号。这个函数非常适合在分组数据中进行排序&#xff0c;并为每一行分配一个序号。下面是对你的具体示例的详细解释&#xff1a; ROW_NUMBER() OVER (…

重新认识一下JNIEnv

JNIEnv 1.JNIEnv是什么&#xff1f; JNIEnv 是 Java Native Interface (JNI) 中的一个重要结构&#xff0c;代表 JNI 环境的指针。它提供了一组函数&#xff0c;用于在本地代码&#xff08;C/C&#xff09;中与 Java 虚拟机&#xff08;JVM&#xff09;进行交互。以下是对 JNI…

CCS6 软件及仿真器驱动安装

1 CCS6 软件获取 TI 的官网上下载: http://www.ti.com/tools-software/ccs.html 注意 首先 win32 是 CCS 安装包支持 64 位系统,我们电脑也是 64 位系统也是安装的 win32 的安装包,另外 TI 只提供 win32 的安装包,无 win64 的安装包。 2 CCS6 软件安装 CCS如果获取提供的…

逆向学习系列(三)adb的使用

由于是记录学习&#xff0c;我就用结合自己的理解&#xff0c;用最通俗的语言进行讲解。 adb是android debug bridge的简写&#xff0c;其作用就是将电脑和手机相连接&#xff0c;用电脑控制手机。 一、adb哪里来 我使用的adb一般都是安装模拟器的时候&#xff0c;模拟器自带…

【物联网技术大作业】设计一个智能家居的应用场景

前言&#xff1a; 本人的物联网技术的期末大作业&#xff0c;希望对你有帮助。 目录 大作业设计题 &#xff08;1&#xff09;智能家居的概述。 &#xff08;2&#xff09;介绍智能家居应用。要求至少5个方面的应用&#xff0c;包括每个应用所采用的设备&#xff0c;性能&am…

PHP即刻送达同城派送小程序系统

即刻送达&#xff0c;同城派送小程序系统让生活更便捷 &#x1f680; 瞬间连接&#xff0c;即刻送达的奇迹 你是否曾经因为等待快递而焦急万分&#xff1f;是否渴望有一种方式能让物品像魔法一样瞬间出现在你面前&#xff1f;现在&#xff0c;有了“即刻送达同城派送小程序系…