Invitation Cards POJ - 1511

题目

思路:建两张图,一张正向一张反向,先在正向图里求一遍一号点到所有点的距离,再在反向图里求一遍,反向图里一号点到所有点的距离的意思是所有点到1号点的最短距离,最后相加和就是答案

具体代码如下

#include<iostream>
#include<queue>
#include<cstdio>
#include<cstring>
#include<vector>
#define x first
#define y secondusing namespace std;typedef long long LL;
typedef pair<LL, LL> PLL;const int N = 1e6 + 10;int n, m;
LL h1[N], e1[N], w1[N], ne1[N], idx1;
LL h2[N], e2[N], w2[N], ne2[N], idx2;
LL dis1[N], dis2[N];
bool st[N];void add1(int a, int b, int c){e1[idx1] = b, w1[idx1] = c, ne1[idx1] = h1[a], h1[a] = idx1++;
}void add2(int a, int b, int c){e2[idx2] = b, w2[idx2] = c, ne2[idx2] = h2[a], h2[a] = idx2++;
}void dijkstra1(){memset(st, 0, sizeof st);memset(dis1, 0x3f, sizeof dis1);dis1[1] = 0;priority_queue<PLL, vector<PLL>, greater<PLL> >heap;heap.push({0, 1});while(heap.size()){PLL t = heap.top();heap.pop();LL ver = t.y;if(st[ver]) continue;st[ver] = true;for(LL i=h1[ver]; i!=-1; i=ne1[i]){LL j = e1[i];if(dis1[j] > dis1[ver] + w1[i]){dis1[j] = dis1[ver] + w1[i];heap.push({dis1[j], j});}}}}void dijkstra2(){memset(st, 0, sizeof st);memset(dis2, 0x3f, sizeof dis2);dis2[1] = 0;priority_queue<PLL, vector<PLL>, greater<PLL> >heap;heap.push({0, 1});while(heap.size()){PLL t = heap.top();heap.pop();LL ver = t.y;if(st[ver]) continue;st[ver] = true;for(LL i=h2[ver]; i!=-1; i=ne2[i]){LL j = e2[i];if(dis2[j] > dis2[ver] + w2[i]){dis2[j] = dis2[ver] + w2[i];heap.push({dis2[j], j});}}}}int main(){int T;scanf("%d", &T);while(T--){memset(h1, -1, sizeof h1);memset(h2, -1, sizeof h2);scanf("%d%d", &n, &m);while(m--){int a, b, c;scanf("%d%d%d", &a, &b, &c);add1(a, b, c);add2(b, a, c);}dijkstra1();dijkstra2();LL res = 0;for(int i=2; i<=n; ++i) res += dis1[i] + dis2[i];printf("%lld\n", res);}return 0;
}

Invitation Cards POJ - 1511【最短路】相关推荐

  1. J - Invitation Cards POJ - 1511

    J - Invitation Cards POJ - 1511 题意: 共有 n 个站点,n 个志愿者从1 出发,分别到达不同的站点,晚上全部回到 1 ,求他们总的最小花费是多少? 思路: 首先想到从 ...

  2. Invitation Cards POJ - 1511 SPFA(dijkstra+反向建图+邻接表(下标过大)+输入输出用stdio(iostream超时))

    题目大意: 有编号1-P的站点, 有Q条公交车路线,公交车路线只从一个起点站直接 到达终点站,是单向的,每条路线有它自己的车费.有P个人早上从1出发 ,他们要到达每一个公交站点, 然后到了晚上再返回点 ...

  3. Invitation Cards POJ 1511

    http://poj.org/problem?id=1511 题意:现有一些ACMERS需要坐车从1号站分别抵达2,3,....N(N<=1000000000)号站,等到晚上后,他们再各自从各自 ...

  4. POJ 1511 Invitation Cards(双向最短路)

    [题目链接] http://poj.org/problem?id=1511 题目意思 给n个点,m条有向边.问你从1到其他n-1各点的最短路和加上从n-1各点到1的最短路. 解题思路 因为是有向边而且 ...

  5. 【POJ - 1511】 Invitation Cards(Dijkstra + 反向建图 多源到单源最短路的处理)

    题干: In the age of television, not many people attend theater performances. Antique Comedians of Mali ...

  6. POJ 1511:Invitation Cards

    Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 26994   Accepted: 895 ...

  7. POJ 1511 Invitation Cards——Dijkstra优先队列优化+反向建图

    [题目描述] In the age of television, not many people attend theater performances. Antique Comedians of M ...

  8. Invitation Cards——正反最短路

    poj 1511: Invitation Cards 题意:点1到其他点的最短距离+其他点到点1的最短距离 的总和. 1.双向建图 正向建图是1到其他点的距离,反向建图则是其他点到1的距离. 2.数据 ...

  9. 【HDU】1535 Invitation Cards 最短路

    传送门:[HDU]1535 Invitation Cards 题目分析:题目真难读......其实题目的意思就是让求从编号为1的点到其他所有点的最短路距离之和加上其他所有点到编号为1的点的最短路距离之 ...

最新文章

  1. android 支付宝支付 出现系统繁忙,请稍后重试(ALI10)
  2. 微生物组入门必读+宏基因组实操课程=新老司机赶快上车
  3. 洛谷 P1004 方格取数 【多线程DP/四维DP/】
  4. 第二、三章:信息系统项目管理基础与立项管理-章节真题
  5. Charles使用1
  6. spring学习(35):c名称空间注入
  7. java easyui 分页_Spring mvc+easyui做列表展示及分页
  8. DS8100存储系统安装配置之个人总作篇
  9. 叫板苹果谷歌,微软将开发者应用分成上调至 95%
  10. 【Spring第十一篇】Transaction
  11. 关于DYNPRO程序的系统迁移与版本不匹配问题之一
  12. EIGRP协议的配置
  13. DNS反劫持的几种方式
  14. 计算机高中期末总结作文,高中学期总结作文
  15. Python从入门到数据分析第一篇—Python简介- Python介绍与初探
  16. Kubernetes实战[2]: 服务发现机制与Cluster DNS的安装(无CA认证版)
  17. 电信大数据治理与质量管理
  18. 腾讯版天眼查3年VIP免费领取!下手要快
  19. E+H超声波液位计变送器维修FMU90-R11CA111AA3A
  20. Aardio做的一个小说在线阅读器

热门文章

  1. 【AD封装】RJ45座子(带3D)
  2. 山海演武传·黄道·第二卷 大风起兮 第二 ~ 三章 傲娇的赤龙皇女
  3. excel 去重复值
  4. linux基础命令 - ps
  5. 【Android,CustomWidget】Chip:那些搜索记录和好评中的Chips组件
  6. 采用简化原型法进行软件项目需求分析
  7. jcp jsr_JCP EC 2011年特别选举候选人宣布
  8. c++的内存管理(raii->shart_ptr->垃圾回收)
  9. ad中按钮开关的符号_电工最常用电气元件实物图及对应符号
  10. [转帖]从磁悬浮到奔驰公交——中国式发展的糜烂