题面:https://www.luogu.org/problem/P4568

本题是分层图裸题Code:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<ctime>
#include<queue>
using namespace std;
const int N=5000005;
int n,m,k,s,t,cnt,Next[N],head[N],to[N],val[N],dis[N];
bool visit[N];
struct Node{int id,dis;friend bool operator<(Node x,Node y){return x.dis>y.dis;}
};
priority_queue<Node> Q;
void add(int x,int y,int z){to[cnt]=y;val[cnt]=z;Next[cnt]=head[x];head[x]=cnt++;
}
void dijkstra(){memset(dis,0x3f,sizeof(dis));memset(visit,0,sizeof(visit));Q.push((Node){s,0});dis[s]=0;while(!Q.empty()){int u=Q.top().id;Q.pop();if(visit[u]){continue;}visit[u]=true;for (int i=head[u];i!=-1;i=Next[i]){int v=to[i];if(dis[v]>dis[u]+val[i]){ dis[v]=dis[u]+val[i];if(!visit[v]){Q.push((Node){v,dis[v]});}}}}
}
int main(){memset(head,-1,sizeof(head));scanf("%d%d%d%d%d",&n,&m,&k,&s,&t);for(int i=1;i<=m;i++){int x,y,z;scanf("%d%d%d",&x,&y,&z);add(x,y,z);add(y,x,z);for(int j=1;j<=k;j++){add(x+(j-1)*n,y+j*n,0);add(y+(j-1)*n,x+j*n,0);add(x+j*n,y+j*n,z);add(y+j*n,x+j*n,z);}}for(int i=1;i<=k;i++){add(t+(i-1)*n,t+i*n,0);}dijkstra();printf("%d\n",(m<k?0:dis[t+n*k]));return 0;
}

转载于:https://www.cnblogs.com/ukcxrtjr/p/11318819.html

P4568 飞行路线相关推荐

  1. 洛谷P4568 飞行路线 最短路k条免费

    题目链接:https://www.luogu.org/problem/P4568 不管是k条免费还是半价都可以做~~~ 两种方法: 1.分层建图(但这种方法建图复杂度有点大) 就是几条免费建层图,每一 ...

  2. 图论之分层图最短路总结 与经典例题

    一.分层图 分层图只是建图时有区别,但跑最短路板子都是一样的,正所谓图论最难的就是建图,只要有合适的建图方法,那么问题就很简单了. 分层图是指有很多个平行的图,各个平行的图之间有特殊的连接边. 如何更 ...

  3. P4568 [JLOI2011]飞行路线

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

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

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

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

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

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

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

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

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

  8. [JLOI 2011]飞行路线[USACO 09FEB]Revamping Trails

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

  9. bzoj2763 [JLOI2011]飞行路线

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

  10. luoguP4568 [JLOI2011]飞行路线

    https://www.luogu.org/problemnew/show/P4568 题目中 k 的大小只有 10,我们可以考虑建立分层图跑最短路 相同层中 a -> b 的权值仍为 val, ...

最新文章

  1. 首届丘成桐女子中学生数学竞赛成绩出炉,成都七中成最大赢家,摘得1金2银1优胜...
  2. Algs4-1.4.12找出两个有序数组的公共元素-方法1
  3. 数据结构 稀疏矩阵的实现方法
  4. ps人像精修照片步骤_ps修图教程:人像精修
  5. linux 内核连接跟踪,Linux内核连接跟踪锁的优化分析(1)
  6. Java常用spark的pom.xml与读取csv为rdd到最终join操作+java常用pom.xml文件
  7. 让打开文件夹直接在某路径打开
  8. java海滩上有一_海滩上有一堆桃子,五只猴子来分-海滩上有一堆桃子,五只猴子来分java实现-吾爱编程网...
  9. sql数据库自动增量备份_SQL自动增量
  10. Springboot连接不上mysql8_springboot连接mysql8.0问题解决
  11. 【定位问题】基于matlab三维chan算法求解室内定位问题【含Matlab源码 580期】
  12. 华为 ensp 下载安装
  13. 贝叶斯(一)先验分布与后验分布
  14. 一阶微分方程组c语言编程,一阶常微分方程数值解的C语言编程实现
  15. 映像劫持 Image Hijack
  16. 1024网易程序员节,最上头的爱,给最好的你!
  17. 估计很多人不知道:在PowerPoint中插入图片的三种方式用法和解析
  18. Pycharm debug时变量无法立即显示,正在评估(evaluating )...
  19. iVMS-4200 Vs区别_理科与工科有什么区别?如何判断自己适合学那个?
  20. 学习 Python 之 Pygame 开发魂斗罗(二)

热门文章

  1. 音频如何转换mp3格式?
  2. 浙江省高校教师职称计算机考试成绩查询系统,浙江省高校招生考试信息管理系统...
  3. 关于城市旅游的HTML网页设计——中国旅游HTML+CSS+JavaScript 出游旅游主题度假酒店 计划出行网站设计
  4. 第七周作业-任务分解
  5. Deepfacelab 小白教程
  6. LM393实现简易PWM调压电路
  7. Word导航窗格显示自定义标题样式的方法
  8. 测试raid10下的服务器性能,Raid5 Raid10性能测试
  9. uni-app创建并运行微信小程序项目
  10. ANYCUBIC Photon Mono 4K光固化打印机快速上手(多次试错的经验积累)