搜索与图论:图中点的层次

搜索与图论:图中点的层次

题目描述

输入样例

复制代码
4 5
1 2
2 3
3 4
1 3
1 4

输出样例

复制代码
1

参考代码

cpp 复制代码
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

const int N = 100010;

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 = 0, tt = 0;
    q[0] = 1;
    
    memset(d, -1, sizeof d);
    
    d[1] = 0;
    
    while (hh <= tt)
    {
        int t = q[hh++];
        
        for (int i = h[t]; i != -1; 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);
    
    for (int i = 0; i < m; i++)
    {
        int a, b;
        cin >> a >> b;
        add(a, b);
    }
    
    cout << bfs() << endl;
    
    return 0;
}
相关推荐
py有趣11 小时前
力扣热门100题之单词拆分
算法·leetcode
j_xxx404_12 小时前
C++算法:哈希表(简介|两数之和|判断是否互为字符重排)
数据结构·c++·算法·leetcode·蓝桥杯·力扣·散列表
Aaron158812 小时前
RFSOC+VU13P+RK3588的核心优势与应用场景分析
嵌入式硬件·算法·matlab·fpga开发·信息与通信·信号处理·基带工程
优家数科12 小时前
精准预测:基于多维用水量的滤芯寿命预警算法
算法
脱氧核糖核酸__12 小时前
LeetCode热题100——189.轮转数组(题解+答案+要点)
数据结构·c++·算法·leetcode
贾斯汀玛尔斯13 小时前
每天学一个算法-快速排序(Quick Sort)
数据结构·算法
炽烈小老头13 小时前
【每天学习一点算法 2026/04/16】逆波兰表达式求值
学习·算法
优家数科13 小时前
水质监测不准?解密云端 TDS 数据建模纠偏算法
算法
木井巳13 小时前
【递归算法】组合总和
java·算法·leetcode·决策树·深度优先·剪枝
coding者在努力13 小时前
被n整除的n位数
c++·算法