HDU 1535 Invitation Cards 2次Dijkstra来回最短路
来源:互联网 发布:淘宝买家订单怎么导出 编辑:程序博客网 时间:2024/05/17 00:22
题目来源:HDU 1535 Invitation Cards
题意:从1派学生到2-n这n-1个点 求去并且回来的最短路 就是1到各点的最短路之和和各点到1的最短路之和 给的是有向图
思路:对于1到各个点的最短路直接Dijkstra求出无压力 然后各个点到1的最短路可以反向建图后再求一次从1到各个点的最短路
对于很多点到一个点的情况可以考虑反向建图 转变成单源最短路
#include <cstdio>#include <algorithm>#include <queue>#include <vector>using namespace std;const int maxn = 1000010;struct edge{int u, v, w;};struct HeapNode{int u, d;bool operator < (const HeapNode& rhs)const{return d > rhs.d;}};vector <edge> edges;vector <edge> G[maxn];int dis[maxn];bool vis[maxn];int n, m;void Dijkstra(){//for(int i = 0; i <= n; i++)//dis[i] = 9999999999;memset(dis, 0x7f, sizeof(dis));dis[1] = 0;memset(vis, false, sizeof(vis));priority_queue <HeapNode> Q;Q.push((HeapNode){1, 0});while(!Q.empty()){HeapNode x = Q.top();Q.pop();int u = x.u;if(vis[u])continue;vis[u] = true;for(int i = 0; i < G[u].size(); i++){ edge e = G[u][i];int v = e.v;if(dis[v] > x.d + e.w){dis[v] = x.d + e.w;Q.push((HeapNode){v, dis[v]});}}}}int main(){int T;scanf("%d", &T);while(T--){scanf("%d %d", &n, &m);edges.clear();for(int i = 0; i < m; i++){int u, v, w;scanf("%d %d %d", &u, &v, &w);edges.push_back((edge){u, v, w});}int ans = 0;for(int i = 0; i <= n; i++)G[i].clear();for(int i = 0; i < m; i++){edge e = edges[i];G[e.u].push_back((edge){e.u, e.v, e.w});}Dijkstra();for(int i = 2; i <= n; i++)ans += dis[i];for(int i = 0; i <= n; i++)G[i].clear();for(int i = 0; i < m; i++){edge e = edges[i];G[e.v].push_back((edge){e.v, e.u, e.w});}Dijkstra();for(int i = 2; i <= n; i++)ans += dis[i];printf("%d\n", ans);}return 0;}
0 0
- HDU 1535 Invitation Cards 2次Dijkstra来回最短路
- hdu 1535 Invitation Cards(有向图的来回最短路,要反向建图)
- hdu 1535 Invitation Cards(最短路)
- 【HDU】1535 Invitation Cards 最短路
- HDU 1535 Invitation Cards 有向图的来回最短路(邻接表反向建图)+spfa
- HDU 1535 Invitation Cards(Dijkstra)
- POJ 1511 Invitation Cards 求来回最短路(spfa)
- POJ 1511 Invitation Cards【来回最短路+SPFA】
- HDU 1535 Invitation Cards (最短路 建正反图)
- hdu 1535 Invitation Cards 最短路spfa+逆向建图
- 【最短路】 HDOJ 1535 Invitation Cards
- HDOJ 1535 Invitation Cards 【最短路 SPFA】
- HDU 1535 Invitation Cards 单源最短路
- hdu 1535 Invitation Cards ( 做2次spfa )
- POJ1511---Invitation Cards (最短路:邻接表+2次spfa)
- HDU 1535 Invitation Cards【SPFA最短路】【正反向建边求单源最短路之和】
- POJ1511 Invitation Cards 【最短路】
- Invitation Cards(最短路)
- 从B树、B+树、B*树谈到R 树
- Win7 32位下安装centos i386 虚拟系统
- Android ViewPager使用详解
- Sorting It All Out
- Java IO流学习总结
- HDU 1535 Invitation Cards 2次Dijkstra来回最短路
- 泪雨跌湿了青春
- OpenGL导入3DS专题
- 01字符串
- Ubuntu Root登录之后,声音很小,而且不能调节声音的大小的解决方法
- 图的存储结构三部曲 ——其一:前向星
- 用 Git 管理作业 (一篇非常初级的入门介绍)
- vim配置
- 从头到尾彻底解析Hash表算法