单源最短路---dijkstra模板(二叉堆优化)
来源:互联网 发布:云计算安全问题实例 编辑:程序博客网 时间:2024/06/01 08:39
题目描述
略
代码
#include <cstdio>#include <cstdlib>#include <queue>#define open(s) freopen(s".in","r",stdin); freopen(s".out","w",stdout);#define close fclose(stdin); fclose(stdout);using namespace std;struct node{ int pos; long long d; bool operator < (const node &b) const { return d>b.d; }};struct Edge{ int to; int next; int w;};int n,m;int cnt;long long d[10005];int head[10005];bool f[10005];Edge edge[500005];void add(int x,int y,int z){ ++cnt; edge[cnt].next=head[x]; edge[cnt].w=z; edge[cnt].to=y; head[x]=cnt;}void dijkstra(int s){ priority_queue<node>q; q.push((node){s,0}); for(int t=1;t;) { int p=q.top().pos; q.pop(); --t; if(f[p]) continue; f[p]=1; for(int i=head[p];i;i=edge[i].next) if(d[edge[i].to]>d[p]+edge[i].w) { d[edge[i].to]=d[p]+edge[i].w; q.push((node){edge[i].to,d[edge[i].to]}); ++t; } }}int main(){ open("3371"); int s; scanf("%d %d %d",&n,&m,&s); for(int i=1;i<=n;++i) d[i]=2147483647; d[s]=0; for(int i=1;i<=m;++i) { int x,y,z; scanf("%d %d %d",&x,&y,&z); add(x,y,z); } dijkstra(s); for(int i=1;i<=n;++i) printf("%lld ",d[i]); close; return 0;}
阅读全文
0 0
- 单源最短路---dijkstra模板(二叉堆优化)
- hdu 2544 单源最短路问题 dijkstra+堆优化模板
- 最短路~dijkstra堆优化模板
- 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)
- 最短路模板[spfa][dijkstra+堆优化][floyd]
- Dijkstra+堆优化 模板
- [ 模板 ] 堆优化Dijkstra
- Dijkstra+堆优化模板
- aoj-2249 Road Construction 单源最短路dijkstra+堆优化(模板)
- HDU 2544 最短路(单源最短路 dijkstra / floyd / dijkstra(堆优化)/dijkstra+邻接链表+堆优化)
- 最短路算法 堆优化 dijkstra+heap
- 最短路 + 邻接表 + 堆优化(模板)(Dijkstra + SPFA)
- Dijkstra 单源最短路 模板 uva11374
- Dijkstra算法+堆优化(模板)
- 【讲解 + 模板】Dijkstra迪杰斯特拉+堆优化
- 单源最短路(堆优dijkstra)
- 基于邻接矩阵的有回溯最小堆优化的单源最短路Dijkstra算法
- 基于邻接表的有回溯最小堆优化的单源最短路Dijkstra算法
- 邮件营销中如何引导用户注册才能有效预防退订?
- IsIconic()和OnPaint()函数
- 【English】Learning English
- Android零基础入门第45节:GridView简单使用
- mysql中You can't specify target table for update in FROM clause错误
- 单源最短路---dijkstra模板(二叉堆优化)
- C语言day1(数据类型、变量本质)
- 机器学习中的数学(3)——协方差矩阵和散布(散度)矩阵
- java 调用matlab绘图
- CSS布局奇淫技巧之–各种居中
- 图解排序算法(一)之3种简单排序(选择,冒泡,直接插入)
- test
- ES自测过程总结
- java 异或加密