hdu1874(dijkstra解法优先队列优化)
2017-04-14 12:49
495 查看
https://vjudge.net/problem/17632/origin
上代码
上代码
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<functional> #include<queue> using namespace std; const int maxn=1e3+5; const int inf=0x3f3f3f3f; typedef pair<int,int> P; vector<P> G[maxn]; int d[maxn]; void init(int n){ for(int i=0;i<n;i++)d[i]=inf; for(int i=0;i<n;i++)G[i].clear(); } void dijkstra(int s){ priority_queue<P,vector<P>,greater<P> >Q; d[s]=0; Q.push(make_pair(d[s],s)); while(!Q.empty()){ int now=Q.top().second; Q.pop(); for(int i=0;i<G[now].size();i++){ int v=G[now][i].first; if(d[v]>d[now]+G[now][i].second){ d[v]=d[now]+G[now][i].second; Q.push(make_pair(d[v],v)); } } } } int main(){ int n,m; while(cin>>n>>m){ init(n); for(int i=1;i<=m;i++){ int x,y,v; cin>>x>>y>>v; G[x].push_back(make_pair(y,v)); G[y].push_back(make_pair(x,v)); } int s,t; cin>>s>>t; dijkstra(s); if(d[t]==inf)cout<<"-1"<<endl; else cout<<d[t]<<endl; } return 0; }
相关文章推荐
- hdu 1874 畅通工程续 (Dijkstra + 优先队列优化)
- hdu 1874 畅通工程续 dijsktra dijkstra+邻接表 优先队列 bellman-ford bellman-ford队列优化(基础题目,一步步优化)
- hdu 2680 dijkstra 使用优先队列优化
- hdu 1535 Invitation Cards(逆向构图+Dijkstra优先队列优化)
- hdu 2112 HDU Today 优先队列优化的Dijkstra+map
- HDU ~ 2544 ~ 最短路 (Dijkstra模板,常规版 and 优先队列优化版)
- hdu 2066最短路 dijkstra 及其优先队列优化
- hdu2544 最短路 dijkstra的使用优先队列优化的比较
- HDU1102 - Constructing Roads 用优先队列优化Prim最小生成树
- UVa 10986 Sending email 优先队列优化的dijkstra 和 朴素dijkstra 效率对比
- Dijkstra算法之优先队列优化版本 By ACReaper Dijkstra
- 优先队列优化 dijkstra
- POJ 1511 Invitation Cards(单源最短路,优先队列优化的Dijkstra)
- Dijkstra + 优先队列优化 模板
- Dijkstra优先队列优化
- In Touch (hdu 5361 优先队列的Dij + 并查集优化)
- UVa 10986 Sending email / 优先队列优化dijkstra
- HDU 1003 Max Sum + 单调队列优化dp解法
- uva 11374 最短路+记录路径 好题 dijkstra优先队列优化算法 邻接表法 可做模板 G++提交
- CUGB图论专场:K - The Shortest Path in Nya Graph(dijkstra优先队列优化+线性构图入边)