洛谷P4568 [JLOI2011]飞行路线

思路:

分层图是对于一些边权的操作,可以将图从二维的引入操作次数kkk作为第三维。
将图复制成k+1k+1k+1份,并且上一份的连向下一份的边权值是修改的权值。

代码:

#include<bits/stdc++.h>
#define pii pair<int,int>
#define ll long long
#define cl(x,y) memset(x,y,sizeof(x))
#define loop(x,y,z) for(x=y;x<=z;x++)
#define reve(x,y,z) for(x=y;x>=z;x--)
#define ct cerr<<"Time elapsed:"<<1.0*clock()/CLOCKS_PER_SEC<<"s.\n";
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define all(x) x.begin(),x.end()
#define lson x<<1,l,mid
#define rson x<<1|1,mid+1,r
#define INF 1e18
const int N=5e6+10;
const int mod=1e9+7;
const int inf=0x3f3f3f3f;
const double eps=1e-8;
const double pi=acos(-1);
using namespace std;
struct edge
{int u,v,w;
}e[N];
int head[N],len=0,vis[N],dis[N];
void add(int u,int v,int w)
{e[++len]={head[u],v,w};head[u]=len;
}
void dij(int s)
{priority_queue<pii,vector<pii>,greater<pii> > q;q.push(mp(0,s));while(!q.empty()){int i,pre=q.top().se;q.pop();if(vis[pre])continue;vis[pre]=1;for(i=head[pre];i;i=e[i].u){int v=e[i].v,w=e[i].w;if(dis[v]>dis[pre]+w){dis[v]=dis[pre]+w;q.push(mp(dis[v],v));}}}
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n,m,i,k,j,s,t;cin>>n>>m>>k>>s>>t;s++;t++;for(i=1;i<=n*(k+1);i++)dis[i]=inf;dis[s]=0;for(i=1;i<=m;i++){int u,v,w;cin>>u>>v>>w;u++;v++;add(u,v,w);add(v,u,w);for(j=1;j<=k;j++){add(u+j*n,v+j*n,w);add(v+j*n,u+j*n,w);add(u+(j-1)*n,v+j*n,0);add(v+(j-1)*n,u+j*n,0);}  }dij(s);int ans=dis[t];for(i=1;i<=k;i++)ans=min(ans,dis[t+i*n]);      cout<<ans<<endl;return 0;
}

(分层图)洛谷P4568[JLOI2011]飞行路线相关推荐

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

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

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

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

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

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

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

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

  5. P4568 [JLOI2011]飞行路线

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

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

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

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

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

  8. [图论]分层图最短路

    ABC132 – E – Hopscotch Addict https://atcoder.jp/contests/abc132/tasks/abc132_e 分层图的思想很重要. 这题算比较简单的, ...

  9. 最短路分层图专题 洛谷P2939,4822,4568

    2020.6.3 今天主要练习了下分层图.看洛谷题解每次都能有新收获.今天本来想练dp,后来感觉可能会太自闭了,不如先来一发最短路,毕竟看家本领不能忘.然后点进了北京某年wc的一道题,让求1-n的最短 ...

  10. 家园 / 星际转移问题(洛谷P2754 分层图+最大流)

    再一次感觉网络流太神奇了qwq 题目链接:[星际转移问题](P4009 汽车加油行驶问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)) 受到之前那道[汽车加油行驶问题](P400 ...

最新文章

  1. 《ArcGIS Runtime SDK for Android开发笔记》——(4)、基于Android Studio构建ArcGIS Android开发环境...
  2. 【机器学习算法-python实现】Adaboost的实现(1)-单层决策树(decision stump)
  3. VC中获取窗口句柄的各种方法
  4. web 静态页面和动态页面的区别
  5. linux 在线帮助,linux教程之在线帮助
  6. c语言 行程长度编码,C语言编程题,求大佬帮助,关于数组的。
  7. Java并发编程实战~协程
  8. 618之际,“敏捷+ DevOps”正提高电商企业的业务和交付效能
  9. pythonfor循环if中断怎么使用_如何在for循环中只运行一次if?
  10. Spark算子:RDD键值转换操作(2)–combineByKey、foldByKey
  11. C语言——32个关键字
  12. ESP12F模组-USB转TTL模块-Arduino下载程序
  13. 【Java面试题】进程间通信的方式有哪些?线程间通讯方式有哪些?
  14. SHELL命令 -- 查看显卡型号
  15. matlab运行很多columns,columns函数的使用方法
  16. 增益 Gain 分贝 dB
  17. 协同学:大自然构造的奥秘-哈肯-3
  18. 1.腾讯轻服务器K3S环境配置
  19. 自动化测试框架cucumber_10分钟学会自动化测试框架--Cucumber + Watir
  20. 使用telnet检测网络丢包情况

热门文章

  1. Unity如何开发微信小游戏
  2. Excel的模板导出+背景水印
  3. Python数据分析案例-多因素方差分析
  4. text 热敏打印机_便携热敏打印机API参考手册.pdf
  5. 面经_黑盒测试与白盒测试
  6. 联想Y720安装双系统详解win10+ubuntu14.04+gtx1060显卡驱动
  7. Ps(Adobephoto shop)当中的色彩范围应该使用在什么地方和使用方法和快速的将一张图片变成素描
  8. Score UVA - 1585
  9. 单节锂离子电池充电设计
  10. 短视频去水印威信小程序源码下载,内附去水印解析接口