最短路算法(Dijsktra + 优先队列)
来源:互联网 发布:孟非睡女嘉宾 知乎 编辑:程序博客网 时间:2024/06/06 21:01
模板,对应测试题HDU 2544
- #include <queue>
- #include <vector>
- #include <cstdio>
- #include <cstring>
- #include <iostream>
- #include <algorithm>
- #define pb push_back
- #define mp make_pair
- #define sz(x) ((int)(x).size())
- using namespace std;
- const int N = 1010;
- const int INF = 12345678;
- int n, m, dis[N];
- bool vis[N];
- struct Node {
- int d, e;
- bool operator < (const Node x) const {
- return x.d < d;
- }
- Node(int d, int e):d(d), e(e){}
- };
- vector<pair<int, int> > V[N];
- void dijkstra(int s) {
- priority_queue<Node> q;
- fill(dis + 1, dis + n + 1, INF);
- fill(vis + 1, vis + n + 1, false);
- q.push(Node(0, s));
- dis[s] = 0;
- while(!q.empty()) {
- Node deq = q.top(); q.pop();
- if(vis[deq.e])
- continue;
- vis[deq.e] = true;
- for(int i = 0;i < sz(V[deq.e]);i++) {
- int e = V[deq.e][i].first;
- int w = V[deq.e][i].second;
- if(dis[deq.e] < dis[e] - w) {
- dis[e] = dis[deq.e] + w;
- q.push(Node(dis[e], e));
- }
- }
- }
- }
- int main(){
- while(cin >> n >> m, n || m) {
- for(int i = 1;i <= n;i++)
- V[i].clear();
- for(int i = 0;i < m;i++) {
- int a, b, w;
- scanf("%d%d%d", &a, &b, &w);
- V[a].pb(mp(b, w));
- V[b].pb(mp(a, w));
- }
- dijkstra(1);
- printf("%d\n", dis[n]);
- }
- return 0;
- }
0 0
- 最短路算法(Dijsktra + 优先队列)
- 最短路算法(Dijsktra + 优先队列)
- HDOJ 1874 畅通工程续(最短路 - dijsktra算法)
- 最短路算法(Floyd、Dijsktra、Bellman-Ford、SPFA)
- 最短路算法(Floyd、Dijsktra、Bellman-Ford、SPFA)
- 优先队列Dijkstra实现最短路算法
- STL 优先队列实现的DIJSKTRA算法
- 最短路(Dijkstra+优先队列)
- ZOJ 2526(最短路+优先队列)
- hdu2544 最短路(dijkstra/优先队列)
- HDU1242(优先队列,最短路)Rescue
- dijsktra最短路
- poj2449-A*算法+优先队列+第k最短路
- [最短路]使用优先队列优化的Dijkstra算法
- 算法训练 最短路 dijkstra优先队列和spfa
- 优先队列优化的dijsktra
- 最短路 dijsktra + floyd 详解
- 最短路径(Dijsktra算法)
- [日常学习][C++]字符串流 <sstream>
- no actions available
- mybatis 学习记录(3)—— 动态 sql
- C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
- hadoop之日志分析
- 最短路算法(Dijsktra + 优先队列)
- C++函数参数传递的一大利器——引用(左值)
- 使用Struts2下载文件遇到问题总结
- CSS实现垂直居中的方法
- Linux和Windows系统修改MSL的值
- 1.1机器语言
- java新建maven项目后pom.xml文件报错:Failure to transfer xpp3:xpp3_min:pom:1.1.4c from...
- 1.2汇编语言的产生
- JavaScript扫雷游戏mineClearance