【模板】Dijkstra堆优化
2018-01-16 08:25
253 查看
bzoj 3408
#include<bits/stdc++.h> #define pa pair<int,int> using namespace std; int n,m,s,t,dis[2505]; bool b[2505]; struct Edge{int to,val;Edge(int _,int __){to=_,val=__;}}; vector<Edge>e[2505]; priority_queue<pa,vector<pa>,greater<pa> >q; inline void Dijkstra(){ memset(dis,127,sizeof(dis)); dis[s]=0; q.push(pa(0,s)); while(!q.empty()){ int x=q.top().second;q.pop(); if(x==t) return; if(b[x]) continue; for(int i=0;i<e[x].size();++i){ if(dis[x]+e[x][i].val<dis[e[x][i].to]){ dis[e[x][i].to]=dis[x]+e[x][i].val; q.push(pa(dis[e[x][i].to],e[x][i].to)); } } b[x]=1; } } int main(){ scanf("%d%d%d%d",&n,&m,&s,&t); for(int i=1;i<=m;++i){ int x,y,z; scanf("%d%d%d",&x,&y,&z); e[x].push_back(Edge(y,z)); e[y].push_back(Edge(x,z)); } Dijkstra(); printf("%d",dis[t]); return 0; }
相关文章推荐
- 最短路--dijkstra+优先队列优化模板
- 最短路模板[spfa][dijkstra+堆优化][floyd]
- poj 1847 最短路 dijkstra模板(vector邻接表+队列优化)
- 最短路 + 邻接表 + 堆优化(模板)(Dijkstra + SPFA)
- P3371 【模板】单源最短路径 SPFA优化 dijkstra堆优化
- 最短路~dijkstra堆优化模板
- hdu 2544 单源最短路问题 dijkstra+堆优化模板
- HDU ~ 2544 ~ 最短路 (Dijkstra模板,常规版 and 优先队列优化版)
- 【讲解 + 模板】Dijkstra迪杰斯特拉+堆优化
- 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)
- Dijkstra+堆优化 模板
- uva 11374 最短路+记录路径 好题 dijkstra优先队列优化算法 邻接表法 可做模板 G++提交
- Dijkstra+堆优化模板 (手写堆简单易懂)
- dijkstra堆优化模板
- 模板:Dijkstra 队列优化
- 单源最短路---dijkstra模板(二叉堆优化)
- Dijkstra堆优化与SPFA模板
- [ 模板 ] 堆优化Dijkstra
- 【模板】Dijkstra的heap优化
- 单源最短路模板_SPFA_Dijkstra(堆优化)_C++