(正权最短路)Dijkstra+优先队列模板---持续更新
来源:互联网 发布:xampp mac使用教程 编辑:程序博客网 时间:2024/06/06 12:38
#include<iostream>#include<cstring>#include<cstdio>#include<queue>using namespace std;const int maxn = 1005;const int INF = 1<<30;int S, E;struct Edge {int from, to, dist;Edge(int u, int v, int d):from(u), to(v), dist(d) {}};struct HeapNode{int d, u;bool operator < (const HeapNode& rhs) const {return d > rhs.d;}};struct Dijksdtra{int n, m;vector<Edge> edges;vector<int> G[maxn];bool done[maxn];int d[maxn];int p[maxn];void init(int n) {this->n = n;for(int i = 0; i < n; i++) G[i].clear();edges.clear();}void AddEdge(int from, int to, int dist) {edges.push_back(Edge(from, to, dist));m = edges.size();G[from].push_back(m-1);}void dijkstra(int s) {priority_queue<HeapNode> Q;for(int i = 0; i < n; i++) d[i] = INF;d[s] = 0;memset(done, 0, sizeof(done));Q.push((HeapNode){0, s});while(!Q.empty()) {HeapNode x = Q.top(); Q.pop();int u = x.u;if(done[u]) continue;done[u] = true;for(int i = 0; i < G[u].size(); i++) {Edge& e = edges[G[u][i]];if(d[e.to] > d[u] + e.dist) {d[e.to] = d[u] + e.dist;p[e.to] = G[u][i];Q.push((HeapNode){d[e.to], e.to});}}}}};
0 0
- (正权最短路)Dijkstra+优先队列模板---持续更新
- 【原创】最短路模板 Floyd,优先队列优化dijkstra,SPFA
- hdu-2544-最短路(Dijkstra + Dijkstra优先队列 + Bellman-ford + SPFA +Floyd) 纯模板题
- dijkstra+优先队列优化 模板
- Dijkstra模板(优先队列)
- 优先队列Dijkstra实现最短路算法
- 最短路(Dijkstra+优先队列)
- hdu 2112 最短路 dijkstra优先队列
- hdu2544 最短路(dijkstra/优先队列)
- dijkstra + 优先队列 最短路 [sdut 2143]
- dijkstra算法模板(优先队列优化)
- Bellman_Ford+普通队列(求不含负环的最短路)模板--持续更新中。。。
- HDU 2544 最短路 静态邻接表+优先队列 dijkstra
- HDOJ 4318 —— dijkstra + 优先队列 求最短路
- hdu 2066最短路 dijkstra 及其优先队列优化
- [最短路]使用优先队列优化的Dijkstra算法
- hdu 2544 最短路(Dijkstra 邻接表+优先队列)
- 【poj 1724】 ROADS 最短路(dijkstra+优先队列)
- BZOJ1283 序列
- JAVA【类】析构器、重载与继承、方法的重写、自动转型、多态、方法与类的分类、接口继承
- cocoapods 的使用及作用
- 斐讯K1路由器刷入openwrt及通过netkeeper连接校园网
- MFC——5.菜单
- (正权最短路)Dijkstra+优先队列模板---持续更新
- cocapods 更新第三方库遇到的问题
- MFC中char*,string和CString之间的转换
- 蓝桥杯 猜算式
- HDU Humble Numbers
- a和&a的区别
- shared_ptr and "<"
- java中ArrayList和class简介
- C++获取随机数的办法