当前位置: 首页 > news >正文

蓝桥王国--dij模板

#include <bits/stdc++.h> // 万能头
using namespace std;
typedef pair<long long ,int> PII;
int n,m;
long long  d[300011];
struct edge///邻接表
{int v;long long w;
};
int vis[300011];
vector<edge> mp[300011];///邻接表
void dij(int s)///dij单源最短
{for(int i=1;i<=n;i++)d[i]=0x3f3f3f3f3f3f3f3fLL;///无穷大d[s]=0;priority_queue<PII> pq;///优先队列pq.push({0,s});///起点startwhile(pq.size()){PII t=pq.top();pq.pop();int u=t.second;if(vis[u]) continue;///标记的跳过vis[u]=1;for(auto i:mp[u])///遍历以u起点的边{int v=i.v;long long w=i.w;if(d[v]>d[u]+w&&vis[v]==0)///更新到s的距离{d[v]=d[u]+w;pq.push({-d[v],v});///最小的点成为新点,要在最上面}}}}
int main() {cin>>n>>m;for(int i=0;i<m;i++){int u,w,v;cin>>u>>v>>w;mp[u].push_back({v,w});}dij(1);for(int i=1;i<=n;i++){if(d[i]>=0x3f3f3f3f3f3f3f3fLL){cout<<"-1 ";}else cout<<d[i]<<" ";}
} // ~ 完美结束!~

这是带符号默认从大到小的优先队列

下面是不带负号改变排序的优先队列

目录

这是带符号默认从大到小的优先队列

下面是不带负号改变排序的优先队列


http://www.lryc.cn/news/546495.html

相关文章:

  • Java基础关键_017_集合(一)
  • Rust编程实战:Rust实现简单的Web服务,单线程性能问题
  • GitLab 密钥详解:如何安全地使用 SSH 密钥进行身份验证
  • 《论数据分片技术及其应用》审题技巧 - 系统架构设计师
  • 【C++】当一个类A中没有声明任何成员变量和成员函数,sizeof(A)是多少?
  • Maven 私服的搭建与使用(一)
  • Ubuntu20.04双系统安装及软件安装(五):VSCode
  • linux网络(3)—— socket编程(1)socket基础认识
  • 【Kubernets】K8S内部nginx访问Service资源原理说明
  • 使用Docker搭建Oracle Database 23ai Free并扩展MAX_STRING_SIZE的完整指南
  • 使用pytorch和opencv根据颜色相似性提取图像
  • MySQL 8.X 报错处理
  • Ubuntu 22.04安装OpenJDK 17
  • 【时序预测】时间序列有哪些鲁棒的归一化方法
  • nlp第九节——文本生成任务
  • STM32MP1xx的启动流程
  • wgcloud-server端部署说明
  • 大模型Agent:人工智能的崭新形态与未来愿景
  • 专题二最大连续1的个数|||
  • 【ORACLE】ORACLE19C在19.13版本前的一个严重BUG-24761824
  • 2025国家护网HVV高频面试题总结来了03(题目+回答)
  • CentOS vs Ubuntu - 常用命令深度对比及最佳实践指南20250302
  • SQL命令详解之常用函数
  • IndexError: index 0 is out of bounds for axis 1 with size 0
  • C++学习之C++初识、C++对C语言增强、对C语言扩展
  • k8s面试题总结(八)
  • 《今日-AI-编程-人工智能日报》
  • Koupleless 2024 年度报告 2025 规划展望
  • C与C++中inline关键字的深入解析与使用指南
  • 记录linux安装mysql后链接不上的解决方法