P4568 飞行路线
题面: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 飞行路线相关推荐
- 洛谷P4568 飞行路线 最短路k条免费
题目链接:https://www.luogu.org/problem/P4568 不管是k条免费还是半价都可以做~~~ 两种方法: 1.分层建图(但这种方法建图复杂度有点大) 就是几条免费建层图,每一 ...
- 图论之分层图最短路总结 与经典例题
一.分层图 分层图只是建图时有区别,但跑最短路板子都是一样的,正所谓图论最难的就是建图,只要有合适的建图方法,那么问题就很简单了. 分层图是指有很多个平行的图,各个平行的图之间有特殊的连接边. 如何更 ...
- P4568 [JLOI2011]飞行路线
P4568 [JLOI2011]飞行路线 Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1 ...
- 洛谷P4568 [JLOI2011] 飞行路线 题解
洛谷P4568 [JLOI2011] 飞行路线 题解 题目链接:P4568 [JLOI2011] 飞行路线 题意: Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公 ...
- 洛谷 P4568 [JLOI2011] 飞行路线(分层图最短路)
[JLOI2011] 飞行路线 题目描述 Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在 n n n 个城市设有业务,设这些城市分别标记为 0 0 0 到 ...
- P4568 [JLOI2011]飞行路线 P2939 [USACO09FEB]改造路Revamping Trails
分层图最短路系列题目 分层图最短路的题目有一个非常容易看得出的把戏:让k条边免费. 对于能让\(k\)条边免费的数据,我们开\(k+1\)层图.每一层图内部正常连点,不同的是前一层的图的起点连一条权值 ...
- 洛谷 - P4568 [JLOI2011]飞行路线(分层图最短路)
题目链接:点击查看 题目大意:给出一张图,每条边都有权值,现在要求从点st到达点ed,沿途中可以让k条边的边权免费,现在求最短路 题目分析:分层图经典模板问题,直接套板子就行了,最后记得对于数组d的每 ...
- [JLOI 2011]飞行路线[USACO 09FEB]Revamping Trails
Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并 ...
- bzoj2763 [JLOI2011]飞行路线
2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 3216 Solved: 1230 [Submit][St ...
- luoguP4568 [JLOI2011]飞行路线
https://www.luogu.org/problemnew/show/P4568 题目中 k 的大小只有 10,我们可以考虑建立分层图跑最短路 相同层中 a -> b 的权值仍为 val, ...
最新文章
- 首届丘成桐女子中学生数学竞赛成绩出炉,成都七中成最大赢家,摘得1金2银1优胜...
- Algs4-1.4.12找出两个有序数组的公共元素-方法1
- 数据结构 稀疏矩阵的实现方法
- ps人像精修照片步骤_ps修图教程:人像精修
- linux 内核连接跟踪,Linux内核连接跟踪锁的优化分析(1)
- Java常用spark的pom.xml与读取csv为rdd到最终join操作+java常用pom.xml文件
- 让打开文件夹直接在某路径打开
- java海滩上有一_海滩上有一堆桃子,五只猴子来分-海滩上有一堆桃子,五只猴子来分java实现-吾爱编程网...
- sql数据库自动增量备份_SQL自动增量
- Springboot连接不上mysql8_springboot连接mysql8.0问题解决
- 【定位问题】基于matlab三维chan算法求解室内定位问题【含Matlab源码 580期】
- 华为 ensp 下载安装
- 贝叶斯(一)先验分布与后验分布
- 一阶微分方程组c语言编程,一阶常微分方程数值解的C语言编程实现
- 映像劫持 Image Hijack
- 1024网易程序员节,最上头的爱,给最好的你!
- 估计很多人不知道:在PowerPoint中插入图片的三种方式用法和解析
- Pycharm debug时变量无法立即显示,正在评估(evaluating )...
- iVMS-4200 Vs区别_理科与工科有什么区别?如何判断自己适合学那个?
- 学习 Python 之 Pygame 开发魂斗罗(二)
热门文章
- 音频如何转换mp3格式?
- 浙江省高校教师职称计算机考试成绩查询系统,浙江省高校招生考试信息管理系统...
- 关于城市旅游的HTML网页设计——中国旅游HTML+CSS+JavaScript 出游旅游主题度假酒店 计划出行网站设计
- 第七周作业-任务分解
- Deepfacelab 小白教程
- LM393实现简易PWM调压电路
- Word导航窗格显示自定义标题样式的方法
- 测试raid10下的服务器性能,Raid5 Raid10性能测试
- uni-app创建并运行微信小程序项目
- ANYCUBIC Photon Mono 4K光固化打印机快速上手(多次试错的经验积累)