news 2026/7/15 5:44:28

leetcode 3650(Dijkstra 算法,小根堆)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 3650(Dijkstra 算法,小根堆)

3650: 边反转的最小路径总成本

思路:Dijkstra 算法

定义 g[i][j] 表示节点 i 到节点 j 这条边的边权。如果没有 i 到 j 的边,则 g[i][j]=∞。

定义 dis[i] 表示起点 k 到节点 i 的最短路径长度,一开始 dis[k]=0,其余 dis[i]=∞ 表示尚未计算出。

根据 Dijkstra 算法,同一个节点我们只会访问一次,所以「最多可使用一次开关」这个约束是多余的,我们只需把反向边的边权设置为 2wi 即可。答案为 0 到 n−1 的最短路长度。

class Solution { public: int minCost(int n, vector<vector<int>>& edges) { vector<vector<pair<int,int>>> g(n); //邻接表 for(auto& e:edges){ int x=e[0],y=e[1],wt=e[2]; g[x].emplace_back(y,wt); g[y].emplace_back(x,wt*2); } vector<int> dis(n,INT_MAX); //堆中保存 (起点到节点 x 的最短路长度,节点 x) priority_queue<pair<int,int>,vector<pair<int,int>>,greater<>> pq; //小根堆 dis[0]=0; //起点到自己的距离是 0 pq.emplace(0,0); while(!pq.empty()){ auto [dis_x,x]=pq.top(); pq.pop(); if(dis_x>dis[x]) continue; //x之前出堆过 if(x==n-1) return dis_x; //到达终点 for(auto& [y,wt]:g[x]){ auto new_dis_y=dis_x+wt; if(new_dis_y<dis[y]){ dis[y]=new_dis_y; //更新 x 的邻居的最短路 //懒更新堆:只插入数据,不更新堆中数据 //相同节点可能有多个不同的 new_dis_y,除了最小的 new_dis_y,其余值都会触发上面的 continue pq.emplace(new_dis_y,y); } } } return -1; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/3 2:11:56

光伏电池 光伏电池输出特性 光照强度 环境温度 对输出特性的影响 UI曲线 PU曲线

光伏电池 光伏电池输出特性 光照强度 环境温度 对输出特性的影响 UI曲线 PU曲线 还有相关参考可以光伏电池这玩意儿挺有意思的&#xff0c;就像个看天吃饭的主儿。今儿咱们拿Python搞点实验&#xff0c;看看光照和温度怎么调戏它的输出特性。先整个基础模型——单二极管模型&a…

作者头像 李华
网站建设 2026/7/6 14:33:42

VibeVoice Pro一文详解:300ms TTFB如何通过音素预测实现实时开口

VibeVoice Pro一文详解&#xff1a;300ms TTFB如何通过音素预测实现实时开口 1. 什么是VibeVoice Pro&#xff1a;不只是TTS&#xff0c;而是实时语音基座 你有没有遇到过这样的场景&#xff1f;用户刚说完一句话&#xff0c;AI助手却要等1秒多才开始回应——那短暂的沉默&am…

作者头像 李华
网站建设 2026/7/10 15:49:35

亲测Z-Image-Turbo生成产品图,商业可用性强

亲测Z-Image-Turbo生成产品图&#xff0c;商业可用性强 1. 为什么这款图像生成模型值得电商人重点关注 你有没有遇到过这些场景&#xff1a; 刚上新一批保温杯&#xff0c;急着发小红书却卡在找图环节——请摄影师要排期、修图师手头紧、外包图库又千篇一律&#xff1b; 做跨…

作者头像 李华
网站建设 2026/7/1 8:32:25

Flutter 三端应用实战:OpenHarmony 简易倒序文本查看器开发指南

一、为什么需要“简易倒序文本查看器”&#xff1f; 在 OpenHarmony 的教育、开发与趣味探索场景中&#xff0c;字符串倒序是一个看似简单却极具启发性的操作&#xff1a; 编程初学者&#xff1a;理解字符串不可变性与序列操作&#xff1b;语言学习者&#xff1a;观察回文词&…

作者头像 李华
网站建设 2026/7/11 2:04:52

Z-Image-Turbo使用全记录:一次成功的AI尝试

Z-Image-Turbo使用全记录&#xff1a;一次成功的AI尝试 上周五下午三点&#xff0c;我合上笔记本电脑&#xff0c;盯着屏幕上刚生成的那张图——敦煌飞天手持琵琶悬于云海之间&#xff0c;金箔纹路清晰可辨&#xff0c;衣袂飘动如被风拂过&#xff0c;右下角一行小楷题跋“天衣…

作者头像 李华
网站建设 2026/7/1 8:33:44

C# 与 Halcon 17.12 的梦幻联动:打造强大视觉项目

C#联合Halcon视觉框架&#xff0c;可以根据项目配置工程&#xff0c;选择对应halcon脚本&#xff0c;可以编译修改脚本&#xff0c;调试相机&#xff0c;创建模板&#xff0c;可以查看检测信息&#xff0c;生产履历&#xff0c;保存历史图像&#xff0c;跟三菱FX5U以太网通讯&a…

作者头像 李华