news 2026/3/14 11:05:53

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/3/8 17:52:31

TCL牵手索尼电视,海信视像的“中国第一”之争结束了?

来源&#xff1a;互联网江湖 作者&#xff1a;刘致呈中国第一、世界第二的品牌电视之争&#xff0c;可能要结束了&#xff01;最近&#xff0c;TCL电子突然甩出了一则重磅公告&#xff0c;其与索尼公司签署了意向备忘录&#xff0c;双方计划成立一家合资公司&#xff0c;以承接…

作者头像 李华
网站建设 2026/3/8 5:38:45

Qwen3Guard-Gen-WEB支持灰盒测试,验证过程透明可信

Qwen3Guard-Gen-WEB&#xff1a;灰盒测试让安全审核过程透明可信 当AI生成内容被嵌入客服对话、教育问答、社交平台甚至政务咨询系统时&#xff0c;一个关键问题始终悬而未决&#xff1a;我们到底该不该相信模型的“安全判定”&#xff1f;不是问它拦不拦得住&#xff0c;而是…

作者头像 李华
网站建设 2026/3/11 12:29:08

技术小白避坑指南:IndexTTS 2.0常见问题全解答

技术小白避坑指南&#xff1a;IndexTTS 2.0常见问题全解答 你刚点开IndexTTS 2.0镜像页面&#xff0c;上传了那段珍藏的5秒语音&#xff0c;输入“今天天气真好”&#xff0c;点击生成——结果音频卡顿、语调发飘、多音字读错&#xff0c;甚至“银行”念成了“yn xng”&#x…

作者头像 李华
网站建设 2026/3/4 11:37:03

测试脚本+AutoRun.service=完美开机自动执行

测试脚本AutoRun.service完美开机自动执行 1. 为什么需要真正可靠的开机自启动方案 你有没有遇到过这样的情况&#xff1a;写好了一个监控脚本、数据采集程序&#xff0c;或者一个简单的环境初始化工具&#xff0c;每次重启系统后都得手动点开终端去运行&#xff1f;更糟的是…

作者头像 李华
网站建设 2026/3/13 7:47:24

AI手势识别与TensorFlow Lite集成:移动端部署实战

AI手势识别与TensorFlow Lite集成&#xff1a;移动端部署实战 1. 引言&#xff1a;AI 手势识别与人机交互新范式 随着智能设备的普及和用户对自然交互方式的需求增长&#xff0c;AI手势识别技术正逐步从实验室走向消费级产品。传统触控、语音交互虽已成熟&#xff0c;但在特定…

作者头像 李华
网站建设 2026/3/14 3:53:43

DeerFlow多语言支持展望:中文优先但兼容国际化需求

DeerFlow多语言支持展望&#xff1a;中文优先但兼容国际化需求 1. DeerFlow是什么&#xff1a;你的个人深度研究助理 DeerFlow不是另一个简单的聊天机器人&#xff0c;而是一个能真正帮你“做研究”的智能助手。它不满足于回答问题&#xff0c;而是主动调用搜索引擎、运行Pyt…

作者头像 李华