题目链接


Solution

建立 \(k+1\) 层图跑 \(Dijkstra\) 就好了.

Code

  1. #include<bits/stdc++.h>
  2. #define ll long long
  3. using namespace std;
  4. const int maxn=200008;
  5. int n,m,k,s,t;
  6. struct sj{
  7. int to;
  8. int next;
  9. int w;
  10. }a[maxn*10];
  11. int head[maxn],size;
  12. ll dis[maxn],dist[maxn];
  13. void add(int x,int y,int w)
  14. {
  15. a[++size].to=y;
  16. a[size].next=head[x];
  17. head[x]=size;
  18. a[size].w=w;
  19. }
  20. int read()
  21. {
  22. char ch=getchar(); int f=1,w=0;
  23. while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
  24. while(ch<='9'&&ch>='0'){w=w*10+ch-'0';ch=getchar();}
  25. return f*w;
  26. }
  27. struct node {
  28. int u;ll d;
  29. bool operator <(const node& rhs) const {
  30. return d>rhs.d;
  31. }
  32. };
  33. inline void Dijkstra()
  34. {
  35. memset(dis,127,sizeof(dis));
  36. dis[s]=0;
  37. priority_queue<node> q;
  38. q.push((node){s,0});
  39. while(!q.empty())
  40. {
  41. node xx=q.top(); q.pop();
  42. int u=xx.u,d=xx.d;
  43. if(d!=dis[u])continue;
  44. for(int i=head[u];i;i=a[i].next)
  45. {
  46. int tt=a[i].to,w=a[i].w;
  47. if(dis[u]+w<dis[tt])
  48. {
  49. dis[tt]=dis[u]+w;
  50. q.push((node){tt,dis[tt]});
  51. }
  52. }
  53. }
  54. }
  55. void pre(int x,int y,int w)
  56. {
  57. for(int i=0;i<=k;i++)
  58. add(x+n*i,y+n*i,w),
  59. add(y+n*i,x+n*i,w);
  60. for(int i=0;i<k;i++)
  61. add(x+n*i,y+n*i+n,0),
  62. add(y+n*i,x+n*i+n,0);
  63. }
  64. int main()
  65. {
  66. n=read(); m=read(); k=read();
  67. s=read(); t=read();
  68. for(int i=1;i<=m;i++)
  69. {
  70. int x,y,w;
  71. x=read();
  72. y=read();
  73. w=read();
  74. pre(x,y,w);
  75. }
  76. for(int i=0;i<=k;i++)
  77. add(t+i*n,n*(k+1)+1,0);
  78. Dijkstra();
  79. cout<<dis[n*(k+1)+1]<<endl;
  80. }

[JLOI2011]飞行路线 (分层图,最短路)的更多相关文章

  1. BZOJ2763: [JLOI2011]飞行路线(分层图 最短路)

    题意 题目链接 Sol 分层图+最短路 建\(k+1\)层图,对于边\((u, v, w)\),首先在本层内连边权为\(w\)的无向边,再各向下一层对应的节点连边权为\(0\)的有向边 如果是取最大最 ...

  2. [JLOI2011]飞行路线 分层图最短路

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

  3. P4568 [JLOI2011]飞行路线 分层图最短路

    思路:裸的分层图最短路 提交:1次 题解: 如思路 代码: #include<cstdio> #include<iostream> #include<cstring> ...

  4. bzoj 2763: [JLOI2011]飞行路线 -- 分层图最短路

    2763: [JLOI2011]飞行路线 Time Limit: 10 Sec  Memory Limit: 128 MB Description Alice和Bob现在要乘飞机旅行,他们选择了一家相 ...

  5. 【bzoj2763】[JLOI2011]飞行路线 分层图最短路

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

  6. BZOJ2763[JLOI2011]飞行路线 [分层图最短路]

    2763: [JLOI2011]飞行路线 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2523  Solved: 946[Submit][Statu ...

  7. [bzoj2763][JLOI2011]飞行路线——分层图最短路

    水题.不多说什么. #include <bits/stdc++.h> using namespace std; const int maxn = 10010; const int maxk ...

  8. bzoj2763 [JLOI]飞行路线 分层图最短路

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

  9. P4568 飞行路线 分层图最短路

    P4568 飞行路线 分层图最短路 分层图最短路 问题模型 求最短路时,可有\(k\)次更改边权(减为0) 思路 在普通求\(Dijkstra\)基础上,\(dis[x][j]\)多开一维\(j\)以 ...

随机推荐

  1. Context 使用不当造成内存泄露

    问题: Activity中的context被传递给了一个生命周期长过activity的对象(通常为静态单实例变量),导致activity不能正常被销毁. 示例:Activity 调用 ChatMgr ...

  2. 《队长说得队》【Alpha】Scrum meeting 2

    项目 内容 这个作业属于哪个课程 >>2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 >>实验十二 团队作业8:软件测试与ALPHA冲刺 团队名称 ...

  3. 重装vs2008遇到的问题

    由于前几天办公室电脑dhcp服务挂了,wifi网线都上不了网,很无奈只能重装了系统.于是VS2008也要重装,之前一直用的都是前一个同事留下来的软件,没自己装过,自己装的时候踩了坑,记录一下. 重装了 ...

  4. [51nod] 1301 集合异或和

    考虑不限制xor{Y}>xor{X} 考虑n=m的情况,每个数i∈[1,n]可以被分配到X集合或Y集合,或不分配 设f[S]表示{X} xor {Y} == S的方案数 有f[S]+=2*f[S ...

  5. python3.6 取整除法

    python3.6 中取整除法运算逻辑如下: d 非零,那么商 q 满足这样的关系: a = qd + r ,且0 ≤ r n1=7//3 #7 = 3*2 +1 n2=-6.1//3 #-7 = 3 ...

  6. Java-framework-Vaadin

    安装vaadin: (1) 首先试了maven+vaadin. 安装maven: 1. unzip apache-maven-3.3.9-bin.zip 2. modify PATH environm ...

  7. i2c drivers

    Linux设备驱动程序架构分析之一个I2C驱动实例   转载于:http://blog.csdn.net/liuhaoyutz 内核版本:3.10.1   编写一个I2C设备驱动程序的工作可分为两部分 ...

  8. oracle如何保证读一致性 第二弹

    Oracle之数据库一致性读的原理 在Oracle数据库中,undo主要有三大作用:提供一致性读(Consistent Read).回滚事务(Rollback Transaction)以及实例恢复(I ...

  9. How to setup multimedia on CentOS 7

    You will need to also install the EPEL repository as nux-dextop depends on this for some of its pack ...

  10. 水题:HDU1716-排列2

    排列2 Problem Description Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数. Input 每组数据占一行,代 ...