基于ssm的大学生兼职信息系统

核心内容摘要

SeaDAS 8.0.0保姆级安装教程:从下载到处理第一张卫星遥感图(附常见错误解决)
深度学习项目训练环境镜像实测:上传代码即可训练,小白友好

StructBERT中文语义匹配:电商评论去重实战案例分享

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, vectorvectorint edges) { vectorvectorpairint,int g(n); //邻接表 for(auto e:edges){ int xe[0],ye[1],wte[2]; g[x].emplace_back(y,wt); g[y].emplace_back(x,wt*

; } vectorint dis(n,INT_MAX); //堆中保存 (起点到节点 x 的最短路长度节点 x) priority_queuepairint,int,vectorpairint,int,greater pq; //小根堆 dis[0]0; //起点到自己的距离是 0 pq.emplace(0,

; while(!pq.empty()){ auto [dis_x,x]pq.top(); pq.pop(); if(dis_xdis[x]) continue; //x之前出堆过 if(xn-

return dis_x; //到达终点 for(auto [y,wt]:g[x]){ auto new_dis_ydis_xwt; if(new_dis_ydis[y]){ dis[y]new_dis_y; //更新 x 的邻居的最短路 //懒更新堆只插入数据不更新堆中数据 //相同节点可能有多个不同的 new_dis_y除了最小的 new_dis_y其余值都会触发上面的 continue pq.emplace(new_dis_y,y); } } } return -1; } };

www黄视频-www黄视频应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123