题目:https://nanti.jisuanke.com/t/41349

思路:dijkstra最短路径

先以 fire-fighting hero为起点 跑一遍dijkstra

建立 起点 p 并与各 fire-fighting point 建立 权为0的边

跑完dijkstra  dis[i]为 p到point i的最短路径 即各 fire-fighting point 到 point i 的最短路径中的最小值

最后将两遍dijkstra 的dis[ ]中的最大值进行比较即可

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef pair<int,int> pii;
  5. const int INF=0x3f3f3f3f;
  6.  
  7. int v,e,s,k,c;
  8. int cnt;
  9. ];
  10. ];
  11. ];
  12. ];
  13. ];
  14. ];
  15. ];
  16. int o;
  17. priority_queue<pii,vector<pii>,greater<pii> >q;
  18.  
  19. void init1()
  20. {
  21. cnt=;
  22. ;i<=k+k+e+e;i++) to[i]=val[i]=;
  23. ;i<=v;i++) head[i]=;
  24. }
  25. void init2()
  26. {
  27. ;i<=v;i++) vis[i]=,dis[i]=INF;
  28. dis[o]=;
  29. while(!q.empty()) q.pop();
  30. }
  31. void addEdge(int a,int b,int d)
  32. {
  33. cnt++;
  34. to[cnt]=b;
  35. val[cnt]=d;
  36. nxt[cnt]=head[a];
  37. head[a]=cnt;
  38. }
  39. void dijkstra()
  40. {
  41. q.push(pii(,o));
  42. while(!q.empty())
  43. {
  44.  
  45. int u=q.top().second;
  46. q.pop();
  47. if(vis[u]) continue;
  48. vis[u]=;
  49. for(int e=head[u];e;e=nxt[e])
  50. if(dis[u]<INF&&dis[to[e]]>dis[u]+val[e])
  51. {
  52. dis[to[e]]=dis[u]+val[e];
  53. q.push(pii(dis[to[e]],to[e]));
  54. }
  55. }
  56. }
  57. int main()
  58. {
  59. int T;
  60. scanf("%d",&T);
  61. int a,b,d;
  62. int resXfy;
  63. int resHero;
  64. while(T--)
  65. {
  66. scanf("%d%d%d%d%d",&v,&e,&s,&k,&c);
  67. init1();
  68. resXfy=-;
  69. resHero=-;
  70. ;i<k;i++) scanf("%d",&xfy[i]);
  71. while(e--)
  72. {
  73. scanf("%d%d%d",&a,&b,&d);
  74. addEdge(a,b,d);
  75. addEdge(b,a,d);
  76. }
  77. o=s;
  78. init2();
  79. dijkstra();
  80. ;i<=v;i++) resHero=max(resHero,dis[i]);
  81. ;i<k;i++) addEdge(,xfy[i],),addEdge(xfy[i],,);
  82. o=;
  83. init2();
  84. dijkstra();
  85. ;i<=v;i++) resXfy=max(resXfy,dis[i]);
  86. if(resHero<=resXfy*c) printf("%d\n",resHero);
  87. else printf("%d\n",resXfy);
  88. }
  89. ;
  90. }

The Preliminary Contest for ICPC Asia Nanchang 2019 B. Fire-Fighting Hero的更多相关文章

  1. The Preliminary Contest for ICPC Asia Nanchang 2019 E. Magic Master

    题目:https://nanti.jisuanke.com/t/41352 思路:约瑟夫环 由题意得第k张牌即求 k 为 第几个 报数为m+1 的单位 用队列模拟即可 #include<bits ...

  2. The Preliminary Contest for ICPC Asia Shanghai 2019 C Triple(FFT+暴力)

    The Preliminary Contest for ICPC Asia Shanghai 2019 C Triple(FFT+暴力) 传送门:https://nanti.jisuanke.com/ ...

  3. The Preliminary Contest for ICPC Asia Nanjing 2019/2019南京网络赛——题解

    (施工中……已更新DF) 比赛传送门:https://www.jisuanke.com/contest/3004 D. Robots(期望dp) 题意 给一个DAG,保证入度为$0$的点只有$1$,出 ...

  4. 计蒜客 41391.query-二维偏序+树状数组(预处理出来满足情况的gcd) (The Preliminary Contest for ICPC Asia Xuzhou 2019 I.) 2019年徐州网络赛)

    query Given a permutation pp of length nn, you are asked to answer mm queries, each query can be rep ...

  5. The Preliminary Contest for ICPC Asia Xuzhou 2019 E XKC's basketball team [单调栈上二分]

    也许更好的阅读体验 \(\mathcal{Description}\) 给n个数,与一个数m,求\(a_i\)右边最后一个至少比\(a_i\)大\(m\)的数与这个数之间有多少个数 \(2\leq n ...

  6. [The Preliminary Contest for ICPC Asia Nanjing 2019] A-The beautiful values of the palace(二维偏序+思维)

    >传送门< 前言 这题比赛的时候觉得能做,硬是怼了一个半小时,最后还是放弃了.开始想到用二维前缀和,结果$n\leq 10^{6}$时间和空间上都爆了,没有办法.赛后看题解用树状数组,一看 ...

  7. 计蒜客 The Preliminary Contest for ICPC Asia Nanjing 2019

    F    Greedy Sequence You're given a permutation aa of length nn (1 \le n \le 10^51≤n≤105). For each  ...

  8. The Preliminary Contest for ICPC Asia Xuzhou 2019

    A:Who is better? 题目链接:https://nanti.jisuanke.com/t/41383 题意: 类似于有N个石子,先手第一次不能拿完,每次后手只能拿 1 到 前一次拿的数量* ...

  9. The Preliminary Contest for ICPC Asia Nanjing 2019

    传送门 A. The beautiful values of the palace 题意: 给出一个\(n*n\)的矩阵,并满足\(n\)为奇数,矩阵中的数从右上角开始往下,类似于蛇形填数那样来填充. ...

随机推荐

  1. HTTP 请求中的 Form Data 与 Request Payload 的区别

    HTTP 请求中的 Form Data 与 Request Payload 的区别 前端开发中经常会用到 AJAX 发送异步请求,对于 POST 类型的请求会附带请求数据.而常用的两种传参方式为:Fo ...

  2. zabbix支持的主要监控方式

    一.zabbix支持的主要监控方式: zabbix主要Agent,Trapper,SNMP,JMX,IPMI这几种监控方式,本文章主要通过监控理论和实际操作测试等方式来简单介绍这几种方式的监控原理和优 ...

  3. 贡献python prim多源最短路搜索算法 numba加速方法的demo和总结

    1.测试两个算法 #coding:utf-8 import time import numba import numpy as np ''' 使用numba加速总结, (1).在数值计算比如int f ...

  4. django中Queryset的删除问题、分页问题

    在开发选课界面时需要过滤掉已经选择过的课程,之前一直以为QuerySet是列表的结构,所以打算在判断之后使用list.remove()方法将已选的课程除掉,但在实际操作时,发现这么做并不行,原来Que ...

  5. WinForm笔记1:TextBox编辑时和DataGridView 单元格编辑时 的事件及其顺序

    TextBox 编辑框 When you change the focus by using the mouse or by calling the Focus method, focus event ...

  6. 前端实现app引导页面动画效果

    插件描述:jQuery引导插件TourTip 交互式可视化指南网页上的元素.使用方法 步骤1: 将以下标记添加到您的文档的<head> 你还需要复制旁边插件的css文件夹和下载的IMG文件 ...

  7. Largest Number At Least Twice of Others

    In a given integer array nums, there is always exactly one largest element. Find whether the largest ...

  8. HTML页面左上角图标

    显示网页左上角标志图标 <link rel="shortcut icon"type="image/x-icon"href="images/fav ...

  9. linux centos7.3安装lnmp,nginx-1.11.12 ,php7.0.2 ,

    #更新源 yum -y update #添加用户和组 adduser www groupadd www usermod -G www www #初始化目录 mkdir -p /data/app/php ...

  10. Python 入门 之 类的三大关系(依赖 / 组合/ 继承关系)

    Python 入门 之 类的三大关系(依赖 / 组合/ 继承关系) 在面向对象的中,类与类之间存在三种关系:依赖关系.组合关系.继承关系. 1.依赖关系:将一个类的类名或对象当做参数传递给另一个函数被 ...