news 2026/4/16 19:57:25

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/4/16 10:40:41

微电网两阶段鲁棒优化经济调度方法 针对微电网内可再生能源和负荷的不确定性,建立了min-max...

微电网两阶段鲁棒优化经济调度方法 针对微电网内可再生能源和负荷的不确定性&#xff0c;建立了min-max-min 结构的两阶段鲁棒优化模型&#xff0c;可得到最恶劣场景下运行成本最低的调度方案。 模型中考虑了储能、需求侧负荷及可控分布式电源等的运行约束和协调控制&#xff0…

作者头像 李华
网站建设 2026/4/16 9:22:54

企业培训资料转化,科哥镜像实现知识沉淀

企业培训资料转化&#xff0c;科哥镜像实现知识沉淀 在企业内部&#xff0c;大量有价值的培训内容长期沉睡在会议录音、讲师口述、现场研讨等非结构化音频中。传统人工转录耗时耗力&#xff0c;外包成本高&#xff0c;且难以保证专业术语准确率&#xff1b;而通用语音识别工具…

作者头像 李华
网站建设 2026/4/15 23:14:18

跨城市地址标准化挑战:MGeo模型适应性调参与部署指南

跨城市地址标准化挑战&#xff1a;MGeo模型适应性调参与部署指南 1. 为什么地址标准化成了城市间数据流动的“卡点” 你有没有遇到过这样的情况&#xff1a;同一栋写字楼&#xff0c;在不同系统里被写成“北京市朝阳区建国路8号SOHO现代城A座”“北京朝阳建国路SOHO A座”“朝…

作者头像 李华
网站建设 2026/4/16 9:24:04

AIVideo保姆级教程:Windows/Mac/Linux三端浏览器兼容性与最佳实践

AIVideo保姆级教程&#xff1a;Windows/Mac/Linux三端浏览器兼容性与最佳实践 1. 什么是AIVideo&#xff1f;——一站式AI长视频创作工具 你有没有试过想做一条专业视频&#xff0c;却卡在写脚本、找素材、配画面、录配音、剪节奏这一连串环节里&#xff1f;反复修改、反复重…

作者头像 李华
网站建设 2026/4/16 12:33:45

5步打造手机视觉智能:让自动点击工具看懂屏幕内容的终极指南

5步打造手机视觉智能&#xff1a;让自动点击工具看懂屏幕内容的终极指南 【免费下载链接】Smart-AutoClicker An open-source auto clicker on images for Android 项目地址: https://gitcode.com/gh_mirrors/smar/Smart-AutoClicker 为什么传统自动点击工具总在关键时刻…

作者头像 李华