news 2026/3/6 13:54:20

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/4 5:16:52

AnimeGANv2用户反馈闭环:问题收集与迭代流程

AnimeGANv2用户反馈闭环&#xff1a;问题收集与迭代流程 1. 引言 随着AI技术在图像生成领域的快速发展&#xff0c;风格迁移已成为连接现实与艺术的重要桥梁。AnimeGANv2作为轻量级、高效率的照片转二次元模型&#xff0c;凭借其出色的画质表现和低资源消耗&#xff0c;在个人…

作者头像 李华
网站建设 2026/2/26 22:40:02

Z-Image Turbo防黑图机制技术解析:bfloat16精度选择与梯度稳定性保障

Z-Image Turbo防黑图机制技术解析&#xff1a;bfloat16精度选择与梯度稳定性保障 1. 什么是Z-Image Turbo本地极速画板 Z-Image Turbo本地极速画板不是又一个套壳UI&#xff0c;而是一套真正为“稳定出图”而生的轻量级AI绘图工作流。它不依赖云端服务&#xff0c;所有计算都…

作者头像 李华
网站建设 2026/3/4 1:59:29

Proteus中实现Keil+C51联合仿真的核心要点

以下是对您提供的博文内容进行 深度润色与结构重构后的技术文章 。全文已彻底去除AI生成痕迹&#xff0c;采用资深嵌入式教学博主的自然口吻撰写&#xff0c;逻辑更连贯、重点更突出、语言更具实操指导性&#xff0c;并严格遵循您提出的全部格式与风格要求&#xff08;如&…

作者头像 李华
网站建设 2026/2/25 22:46:08

通义千问3-4B内存溢出?树莓派4适配部署优化实战指南

通义千问3-4B内存溢出&#xff1f;树莓派4适配部署优化实战指南 1. 为什么在树莓派4上跑Qwen3-4B会“爆内存”&#xff1f; 你刚下载完 Qwen3-4B-Instruct-2507&#xff0c;兴冲冲地在树莓派4&#xff08;4GB RAM版&#xff09;上执行 ollama run qwen3:4b-instruct&#xff…

作者头像 李华
网站建设 2026/3/5 14:18:20

蓄电池与超级电容混合储能系统的Simulink能量管理仿真模型研究

蓄电池超级电容混合储能系统simulink能量管理仿真模型在折腾混合储能系统仿真的时候&#xff0c;总得有个能打能抗的模型来验证能量管理策略。Simulink里搭个蓄电池超级电容的混搭组合&#xff0c;这事说难不难&#xff0c;但参数整定和策略实现绝对能让头发掉几根。先整个系统…

作者头像 李华
网站建设 2026/3/1 22:56:01

扩展卡尔曼滤波与粒子滤波原理到代码实践

扩展卡尔曼滤波和粒子滤波原理到代码实践非线性系统的状态估计总带着点玄学色彩。扩展卡尔曼滤波&#xff08;EKF&#xff09;像是个数学魔术师&#xff0c;总能把曲线掰直了看。先看个经典案例——雷达跟踪目标。假设目标在做匀速圆周运动&#xff0c;状态向量[x, y, vx, vy]&…

作者头像 李华