Dijkstra(n log(n))优先队列优化+链式前向星
来源:互联网 发布:sqlserver可视化工具 编辑:程序博客网 时间:2024/06/14 01:33
#include<bits/stdc++.h>using namespace std;const int maxn=500000+10,inf=214748364;int n,m;int e,begin[maxn*2],to[maxn],next[maxn],w[maxn];struct node{int a,b;bool operator < (const node& u)const{return b>u.b;}};inline void add(int x,int y,int z){to[++e]=y;next[e]=begin[x];begin[x]=e;w[e]=z;}int d[maxn],p[maxn];inline void Dijkstra(int s){memset(d,0x3f3f3f,sizeof(d));priority_queue<node> q;d[s]=0;q.push((node){s,0});while(!q.empty()){node tmp=q.top();q.pop();if(p[tmp.a])continue;p[tmp.a]=1;for(int i=begin[tmp.a];i;i=next[i]){if(d[to[i]]>d[tmp.a]+w[i]){d[to[i]]=d[tmp.a]+w[i];q.push((node){to[i],d[to[i]]});}}}}int main(){int i,j,k;freopen("Dijkstra.in","r",stdin);freopen("Dijkstra.out","w",stdout);int s;scanf("%d%d%d",&n,&m,&s);int x,y,z;for(i=1;i<=m;i++){scanf("%d%d%d",&x,&y,&z);add(x,y,z);}Dijkstra(s);for(i=1;i<=n;i++){if(i!=1){if(d[i]==1061109567)cout<<" "<<2147483647;else cout<<" "<<d[i];}else {if(d[1]==1061109567)cout<<2147483647;else cout<<d[i];}}cout<<endl;return 0;}
1 0
- Dijkstra(n log(n))优先队列优化+链式前向星
- poj 1511 Invitation Cards(优先队列优化Dijkstra+链式前向星存储边)
- dijkstra队列优化链式前向星(C++、Java)
- POJ 2387 经典解法,优先队列的dijkstra+链式前向星存储
- poj 3159 Candies (差分约束 先队列优化Dijkstra 链式前向星存储)
- DIJKSTRA算法(优先队列实现)(o(n*n))
- 优先队列优化 dijkstra
- Dijkstra(优先队列优化)
- Dijkstra优先队列优化
- HDU1874 畅通工程续 【链式前向星】+【Dijkstra】
- HDU1285 确定比赛名次(拓扑排序+队列优化+链式前向星)
- 图的深度优先遍历(链式前向星)
- 图的广度优先遍历(链式前向星)
- 链式前向星
- 链式前向星
- 链式前向星
- 链式前向星
- 链式前向星
- 心理扭曲和心理变态含义分别是什么?
- 人脸识别的初步认识
- 真正好用的RPC框架rest_rpc正式发布第一个版本
- 免费谷歌卫星地图下载器
- Retrofit 源码解析
- Dijkstra(n log(n))优先队列优化+链式前向星
- StringTokenizer类的使用方法
- MFCC倒谱系数特征提取与识别
- Spring4下载f.txt文件解决方法
- 继续指针
- android中handler,message,message queue,looper底层实现机制
- Android ViewPager使用小结
- Linux下MySQL数据库常用基本操作
- Errors occurred during the build. Errors running builder 'DeploymentBuilder' on project 'myf'. java.