bellman ford优先队列优化简介模板
#include<iostream>
#include<cstdio>
#include<utility>
#include<queue>
#include<cstring>
using namespace std;
#define INF 1000000000
int d[20005];
int n,m,a,b,c;
int u[200005];
int v[200005];
int l[200005];
int nxt[200005]; // next[e] 记录e的下一条边的标号
int first[20005]; // first[u] 是u的"第一条" 边的编号
int vis[20005];
int min(int a,int b){
return a<b?a:b;
}
int main(){
cin>>n>>m;
for(int i=0;i<=n;i++)
first[i]=-1;
for(int i=1;i<=m;i++){
scanf("%d%d%d",&u[i],&v[i],&l[i]);
nxt[i]=first[u[i]];
first[u[i]]=i;
}
for(int i=1;i<=n;i++)
d[i]=(i==1?0:INF);
memset(vis, 0, sizeof(vis));
queue<int> q;
q.push(1);
while(!q.empty()){
int x=q.front();
q.pop();
vis[x]=0;
for(int e=first[x];e!=-1;e=nxt[e]){
if(d[v[e]]>d[x]+l[e]){
d[v[e]]=d[x]+l[e];
if(!vis[v[e]]){
vis[v[e]]=1;
q.push(v[e]);
}
}
}
}
for(int i=1;i<=n;i++)
cout<<d[i]<<endl;
return 0;
}
5 7
1 2 2
1 5 10
2 3 3
2 5 7
3 4 4
4 5 5
5 3 6
转载于:https://www.cnblogs.com/13224ACMer/p/4633291.html
bellman ford优先队列优化简介模板相关推荐
- bellman ford 算法 判断是否存在负环
Flyer 目录视图 摘要视图 订阅 微信小程序实战项目--点餐系统 程序员11月书讯,评论得书啦 Get IT技能知识库,50个领域一键直达 关闭 bellman for ...
- Bellman——Ford算法
Bellman--Ford 算法介绍 思路讲解 案例分析与代码实现 案例分析 代码实现 优先队列优化(SPFA) 优化原理 代码实现 算法介绍 我们知道Dijkstra算法只能用来解决正权图的单源最短 ...
- Dijkstra算法堆/优先队列优化
Dijkstra算法堆/优先队列优化 前言 额外知识简介 堆与优先队列 STL库 重载 Dijkstra分析及优化 分析优化 代码实现 存储结构 边 点 优先队列 函数 初始化 添加边 Dijkstr ...
- dijkstra 的优先队列优化
既然要学习算法,就要学习到它的精髓,才能够使用起来得心应手. 我还是远远不够啊. 早就知道,dijkstra 算法可以用优先队列优化,我却一直不知道该怎样优化.当时,我的思路是这样的:假设有n个顶点, ...
- SPFA or bellman ford松弛法--单源最短路
问题概述:有编号1-n的n个站点,有m条公交车路线,公交车只从一个起点站直接到达终点站,是单向的且每条路线有它自己的车费,有P个人早上从1出发,他们要到达每一个公交站点,然后到了晚上再返回点1,求所有 ...
- Bellman Ford算法详解
一.用途 1. Bellman Ford算法是解决拥有负权边最短路问题的方法之一.还有一种方法是SPFA算法. 2. 二者相比,SPFA算法在效率方面是优于Bellman Ford算法的.但在某些情况 ...
- LeetCode 787. K 站中转内最便宜的航班(图/Bellman Ford算法)
文章目录 贝尔曼-福特算法(Bellman-Ford) 简介 算法思想 算法执行过程 应用 题目描述 分析 代码 LeetCode 787. K 站中转内最便宜的航班 题目描述 Bellman For ...
- P2048 [NOI2010] 超级钢琴(ST表 + 优先队列优化)
P2048 [NOI2010] 超级钢琴 题目 小 Z 是一个小有名气的钢琴家,最近 C 博士送给了小 Z 一架超级钢琴,小 Z 希望能够用这架钢琴创作出世界上最美妙的音乐. 这架超级钢琴可以弹奏出 ...
- 2018南京网络赛L题 Magical Girl Haze(分层图+优先队列优化的dijkstra)
使用优先队列优化过的dijkstra时间复杂度可以达到O(v*logn),还是很快的. #include <iostream> //最好是用long long ...
最新文章
- 3月到9月之9月到12月
- 如何防止同一账号多次登录
- 【增强】FI行项目报表增强任意字段
- typora export to word is excellent
- Go进阶(9): For Range 性能研究
- java游戏模拟器mx5_OPPO华为VIVO魅族金立电脑手游安卓模拟器官方下载
- 用python实现流程自动化_Python自动化开发 - 流程控制
- 22岁印度大学生获谷歌天价offer,击败6000人年薪百万
- 199. Binary Tree Right Side View
- 项目的权限设计的小计
- 总感觉这个访问量过于均匀……
- CSPS2019Day1T2(括号树)题解
- The Elder(hdu 5956 树上斜率dp + 队列还原)
- java graphics2d 乱码_Graphics2D 中文乱码
- 打入苹果ipad的大陆芯片供应商
- 电音(5)Bass类电音
- win10 无线鼠标卡顿,跳帧
- 基于51 手机遥控的蓝牙小车(HC-05)
- 电大 学位英语 计算机 资料,电大学位英语资料整理完整
- CTF-实验吧-FALSE
热门文章
- 生物聚集细胞生物化学反应的组织者Biomolecular condensates: organizers of cellular biochemistry
- wxpython多线程 假死_wxpython多线程防假死与线程间传递消息实例详解
- python acme_使用 acme-tiny 工具生成 Let's Encrypt 的免费 SSL 证书
- 系统学习数字图像处理之形态学分析
- 计算机设计类自我诊断意见,汽车故障自我诊断.doc
- idea查找类 方法在哪里被使用
- 勒索软件Locky最新传播载体分析——中文版Office危在旦夕
- Spring Annotation是怎么工作的?
- [数分提高]2014-2015-2第9教学周第2次课 (2015-04-30)
- 常见排序算法:归并排序