Dijkstra普通算法及优先队列优化
2017-02-03 16:51
441 查看
#include<stdio.h> #include<iostream> #define maxv 100 #define inf 0x3fffffff using namespace std; int cost[maxv][maxv]; int d[maxv]; bool used[maxv]; int V; void dijkstra(int s) { for(int i=0;i<v;i++) d[i]=inf; d[s]=0; fill(used,used+v,false); while(true) { int v=-1; for(int u=0;u<V;u++) { if(!used[u]&&(v==-1||d[u]<d[v])) v=u; } if(v=-1) break; used[v]=true; for(int u=0;u<V;u++) { if(d[u]>d[v]+cost[v][u]) d[u]=d[v]+cost[v][u] } } }
#include<iostream> #include<stdio.h> #include<queue> #define maxv 1000 #define inf 0x3fffffff using namespace std; struct edge { int to; int cost; }; typedef pair<int,int> P;//cost v int V; vector<edge>G[maxv]; int d[maxv]; void difkstra(int s) { priority_queue <P,vector<P>,greater<P> >que; fill(d,d+V,inf); d[s]=0; que.push(P(0,s)); while(!que.empty()) { P p=que.top();que.pop(); int v=p.second; for(int i=0;i<G[v].size();i++) { edage e=G[v][i]; if(d[e.to]>d[v]+e.cost) { d[e.to]=d[v]+e.cost; que.push(P(d[e.to],e.to)); } } } }
相关文章推荐
- Dijkstra算法之优先队列优化版本 By ACReaper Dijkstra
- Dijkstra算法优先队列优化
- uva 11374 最短路+记录路径 好题 dijkstra优先队列优化算法 邻接表法 可做模板 G++提交
- POJ 1511 Invitation Cards(单源最短路,优先队列优化的Dijkstra)
- CUGB图论专场:K - The Shortest Path in Nya Graph(dijkstra优先队列优化+线性构图入边)
- hdu 2112 HDU Today 优先队列优化的Dijkstra+map
- csu 1808 地铁 dijkstra变形+优先队列优化
- UVa 658 It's not a Bug, it's a Feature! 位运算技巧+dijkstra优先队列优化
- Dijkstra + 优先队列优化 模板
- Dijkstra(n log(n))优先队列优化+链式前向星
- uva10986 优先队列优化的Dijkstra
- hdu1874(dijkstra解法优先队列优化)
- Dijkstra单源最短路径算法; 优先队列+静态数组邻接表; STL优先队列还是没想明白排序原则;
- 拓扑排序 详解+最小生成树(MST)详解 【普利姆算法 + 优先队列优化 & 克鲁斯卡尔算法】
- 拓扑排序 详解 + 并查集 详解 + 最小生成树(MST)详解 【普利姆算法 + 优先队列优化 & 克鲁斯卡尔算法】
- hdu 2066最短路 dijkstra 及其优先队列优化
- UVa 10986 Sending email / 优先队列优化dijkstra
- 优先队列优化 dijkstra
- 最短路--dijkstra+优先队列优化模板
- [codevs1021] 玛丽卡 优先队列优化dijkstra