https://www.luogu.org/problemnew/show/P4568

题目中 k 的大小只有 10,我们可以考虑建立分层图跑最短路

相同层中 a -> b 的权值仍为 val,不同层中 a -> b 的权值为 0,相当于免费乘坐了一次飞机

写一个最短路就可以啦

#include <bits/stdc++.h>
#define CIOS ios::sync_with_stdio(false);
#define For(i, a, b) for(register int i = a; i <= b; i++)
#define Forr(i, a, b) for(register int i = a; i >= b; i--)
using namespace std;typedef unsigned long long ull;
typedef long long ll;template <typename _T>
inline void read(_T &f) {f = 0; _T fu = 1; char c = getchar();while(c < '0' || c > '9') { if(c == '-') fu = -1; c = getchar(); }while(c >= '0' && c <= '9') { f = (f << 3) + (f << 1) + (c & 15); c = getchar(); }f *= fu;
}template <typename T>
void print(T x) {if(x < 0) putchar('-'), x = -x;if(x < 10) putchar(x + 48);else print(x / 10), putchar(x % 10 + 48);
}template <typename T>
void print(T x, char t) {print(x); putchar(t);
}const int N = 4e5 + 5, M = 4e6 + 5;struct Edge {int u, v, next, val;
}G[M];int head[N];
int n, m, k, s, t, tot;inline void addedge(int u, int v, int val) {G[++tot] = (Edge) {u, v, head[u], val}, head[u] = tot;
}int dis[N];
priority_queue < pair <int, int> > Q;
void dij(int s) {memset(dis, 0x3f, sizeof(dis));dis[s] = 0; Q.push(make_pair(0, s));while(!Q.empty()) {pair <int, int> t = Q.top(); Q.pop();if(-t.first > dis[t.second]) continue;int u = t.second;for(register int i = head[u]; i; i = G[i].next) {int v = G[i].v;if(dis[v] > dis[u] + G[i].val) {dis[v] = dis[u] + G[i].val;Q.push(make_pair(-dis[v], v));}}}
}int main() {read(n); read(m); read(k);read(s); read(t);while(m--) {int a, b, c;read(a); read(b); read(c);for(register int i = 1; i <= k + 1; i++) addedge((i - 1) * n + a, (i - 1) * n + b, c), addedge((i - 1) * n + b, (i - 1) * n + a, c);for(register int i = 1; i <= k; i++) addedge((i - 1) * n + a, i * n + b, 0), addedge((i - 1) * n + b, i * n + a, 0);}dij(s); int ans = 0x7fffffff;for(register int i = 1; i <= k + 1; i++) ans = min(ans, dis[(i - 1) * n + t]);cout << ans << endl;return 0;
}

转载于:https://www.cnblogs.com/LJC00118/p/9866409.html

luoguP4568 [JLOI2011]飞行路线相关推荐

  1. P4568 [JLOI2011]飞行路线

    P4568 [JLOI2011]飞行路线 Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1 ...

  2. bzoj2763 [JLOI2011]飞行路线

    2763: [JLOI2011]飞行路线 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 3216  Solved: 1230 [Submit][St ...

  3. 洛谷P4568 [JLOI2011] 飞行路线 题解

    洛谷P4568 [JLOI2011] 飞行路线 题解 题目链接:P4568 [JLOI2011] 飞行路线 题意: Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公 ...

  4. 洛谷 P4568 [JLOI2011] 飞行路线(分层图最短路)

    [JLOI2011] 飞行路线 题目描述 Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在 n n n 个城市设有业务,设这些城市分别标记为 0 0 0 到 ...

  5. JLOI2011 飞行路线

    洛谷 BZOJ 分析 经典的分层最短路题(我不会). 建 \(k+1\) 层图,跑一遍最短路,找到 \(dis[i]\) 最小的一个. 代码 #include <queue> #inclu ...

  6. [JLOI2011]飞行路线

    题目描述 Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为 0 到 n-1,一共有 m 种航线,每种航线连接两个城市, ...

  7. P4568 [JLOI2011]飞行路线 P2939 [USACO09FEB]改造路Revamping Trails

    分层图最短路系列题目 分层图最短路的题目有一个非常容易看得出的把戏:让k条边免费. 对于能让\(k\)条边免费的数据,我们开\(k+1\)层图.每一层图内部正常连点,不同的是前一层的图的起点连一条权值 ...

  8. 洛谷 4568 [JLOI2011] 飞行路线

    题目戳这里 一句话题意: 有n个点,m条边的有向图,最多可以把k条边变为0,求从起点到终点最短距离. Solution 首先看到这题目,感觉贼难,看起来像DP,貌似也有大佬这么做,但鉴于本蒟蒻思维能力 ...

  9. 洛谷 - P4568 [JLOI2011]飞行路线(分层图最短路)

    题目链接:点击查看 题目大意:给出一张图,每条边都有权值,现在要求从点st到达点ed,沿途中可以让k条边的边权免费,现在求最短路 题目分析:分层图经典模板问题,直接套板子就行了,最后记得对于数组d的每 ...

最新文章

  1. 调用实现天气预报功能android,Android编程实现获取新浪天气预报数据的方法
  2. 企业架构 - 组织角色和技能
  3. 计算机扩招的学校,这些985/211学校今年继续扩招!又有一大波学校专业课有变!...
  4. python break语句作用_Python
  5. 【GIS风暴】GIS拓扑关系原理详解
  6. LOJ#6002. 「网络流 24 题」最小路径覆盖
  7. 建房子 最安全图纸_妄想山海初期该怎么办?砍树狩猎建房子,还能拆别人的房子...
  8. 3-3:HTTP协议之request和respond及常见请求方法和常见状态码
  9. 20190827 On Java8 第十四章 流式编程
  10. MapReduce 学习4 ---- 自定义分区、自定义排序、自定义组分
  11. PHP中的simplehtmldom学习
  12. 生活技巧:过日子学着点
  13. Photon与Unity核心技术之角色更换武器
  14. 数据库系统概论(第七章:数据库设计)
  15. 会计学基础期末考试试题及答案
  16. 有趣的灵魂万里挑一:从智能座舱看汽车进化史
  17. 学校永远不会教你的财富课:养鹅
  18. Motorola S19(S-record)格式解析
  19. 行业研究报告-全球与中国电脑机箱风扇市场现状及未来发展趋势
  20. java生成短信验证码 字母加数字的验证码

热门文章

  1. 常见html5营销类型有哪些,常见的品牌营销都有哪几种形式
  2. 《魂斗罗:归来》子弹中没中,没你想得那么简单!
  3. 问题解决:java.sql.SQLException: No suitable driver found for jdbc:mysql
  4. Hive-beeline启动脚本
  5. python3版本升级和系统更新_如何更新mac系统自带的python版本到最新3.3
  6. 图书管理系统(I/O)
  7. 制作VMware 6.X安装源安装流程
  8. 有用的.NET开发资料
  9. 上市4天暴降1500元,iPhone14创下了苹果降价最快纪录
  10. 电路及esd静电防护