[M最短路] lc3112. 访问消失节点的最少时间(堆优化Dijkstra+最短路+模板题)

1. 题目来源

链接:3112. 访问消失节点的最少时间

2. 题目解析

图论最短路的题目,分析思路如下:

  • 源点类型:单源
  • 图类型:稀疏图
  • 数据范围:较大,Dijkstra 朴素不可用。

所以,顺利成章喽,堆优化 Dijkstra 上就完事了。

只需要注意下,在进行松弛操作时,需要判断 x–>y 点的最短路路径下,y 点是否还存在 即可。


还是得常常复习下图论模板及应用场景,对它理解还是不够深,此类模板题愣了一会会,还手生写的很慢。


  • 时间复杂度 O ( n + m l o g m ) O(n + mlogm) O(n+mlogm)
  • 空间复杂度 O ( n + m ) O(n+m) O(n+m)

class Solution {
public:
    vector<int> minimumTime(int n, vector<vector<int>>& edges, vector<int>& disappear) {
        vector<vector<pair<int, int>>> adj(n);
        for (auto & e : edges) {
            int x = e[0], y = e[1], w = e[2];
            adj[x].push_back({y, w});
            adj[y].push_back({x, w});
        }

        priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;
        pq.push({0, 0});

        vector<int> dist(n, -1);
        dist[0] = 0;
        vector<int> st(n);
        while (pq.size()) {
            auto [d, x] = pq.top(); pq.pop();

            if (st[x]) continue;
            st[x] = true;

            for (auto& [y, length] : adj[x]) {
                if (d + length < disappear[y] && (dist[y] < -1 || d + length < dist[y])) {
                    pq.push({d + length, y});
                    dist[y] = d + length;
                }
            }
        }

        return dist;
    }
};

相关推荐

  1. 优化Dijkstrea算法(求短路问题)

    2024-07-18 09:30:02       28 阅读
  2. 蓝桥杯每日一Dijkstra短路算法)

    2024-07-18 09:30:02       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 09:30:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 09:30:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 09:30:02       58 阅读
  4. Python语言-面向对象

    2024-07-18 09:30:02       69 阅读

热门阅读

  1. 七、python函数基础

    2024-07-18 09:30:02       20 阅读
  2. Junit单元测试常用断言

    2024-07-18 09:30:02       25 阅读
  3. app自动化测试缓存问题如何解决?

    2024-07-18 09:30:02       21 阅读
  4. 【Go系列】Go语言的测试

    2024-07-18 09:30:02       21 阅读
  5. OPPO 2024届校招正式批笔试题-后端(C卷)

    2024-07-18 09:30:02       23 阅读
  6. Caffeine缓存

    2024-07-18 09:30:02       23 阅读
  7. GO语言用http包发送带json文本body的GET请求

    2024-07-18 09:30:02       21 阅读
  8. Ubuntu 20 安装 uwsgi 失败解决办法

    2024-07-18 09:30:02       20 阅读