为什么早年的题总是从0开始标号啊……又zz了一次WA

分层图的题只有这一个套路吧,建分层图,然后优化时间是分层跑spfa然后层与层之间单独跑即可

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<queue>
  4. #include<cstring>
  5. using namespace std;
  6. const int N=50005,inf=1e9;
  7. int n,m,k,s,t,h[N],cnt,dis[N],d[N];
  8. bool v[N];
  9. deque<int>q;
  10. struct qwe
  11. {
  12. int ne,no,to,va;
  13. }e[N<<2];
  14. int read()
  15. {
  16. int r=0,f=1;
  17. char p=getchar();
  18. while(p>'9'||p<'0')
  19. {
  20. if(p=='-')
  21. f=-1;
  22. p=getchar();
  23. }
  24. while(p>='0'&&p<='9')
  25. {
  26. r=r*10+p-48;
  27. p=getchar();
  28. }
  29. return r*f;
  30. }
  31. inline void add(int u,int v,int w)
  32. {
  33. cnt++;
  34. e[cnt].ne=h[u];
  35. e[cnt].no=u;
  36. e[cnt].to=v;
  37. e[cnt].va=w;
  38. h[u]=cnt;
  39. }
  40. void spfa()
  41. {
  42. while(!q.empty())
  43. {
  44. int u=q.front();
  45. q.pop_front();
  46. v[u]=0;
  47. for(int i=h[u];i;i=e[i].ne)
  48. if(dis[e[i].to]>dis[u]+e[i].va)
  49. {
  50. dis[e[i].to]=dis[u]+e[i].va;
  51. if(!v[e[i].to])
  52. {
  53. v[e[i].to]=1;
  54. if(!q.empty()&&dis[q.front()]>dis[e[i].to])
  55. q.push_front(e[i].to);
  56. else
  57. q.push_back(e[i].to);
  58. }
  59. }
  60. }
  61. }
  62. int main()
  63. {
  64. n=read(),m=read(),k=read(),s=read()+1,t=read()+1;
  65. for(int i=1;i<=m;i++)
  66. {
  67. int x=read()+1,y=read()+1,z=read();
  68. add(x,y,z),add(y,x,z);
  69. }
  70. for(int i=1;i<=n;i++)
  71. dis[i]=inf;
  72. v[s]=1,dis[s]=0,q.push_back(s);
  73. spfa();
  74. for(int con=1;con<=k;con++)
  75. {
  76. for(int i=1;i<=n;i++)
  77. d[i]=inf;
  78. v[s]=1,dis[s]=0,q.push_back(s);
  79. for(int i=1;i<=cnt;i++)
  80. if(d[e[i].to]>dis[e[i].no])
  81. {
  82. d[e[i].to]=dis[e[i].no];
  83. if(!v[e[i].to])
  84. {
  85. v[e[i].to]=1;
  86. if(!q.empty()&&d[q.front()]>d[e[i].to])
  87. q.push_front(e[i].to);
  88. else
  89. q.push_back(e[i].to);
  90. }
  91. }
  92. for(int i=1;i<=n;i++)
  93. dis[i]=d[i];
  94. spfa();
  95. }
  96. printf("%d\n",dis[t]);
  97. return 0;
  98. }

bzoj 2763: [JLOI2011]飞行路线【分层图+spfa】的更多相关文章

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

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

  2. bzoj 2763 [JLOI2011]飞行路线——分层图

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2763 分层图两种方法的练习. 1.把图分成k+1层,本层去上面一层的边免费.但空间时间都不算 ...

  3. bzoj 2763: [JLOI2011]飞行路线 分层图

    题目链接 n个点m条路, 每条路有权值,  给出起点和终点, 求一条路使得权值最小.可以使路过的路中, k条路的权值忽略. 其实就是多一维, 具体看代码 #include<bits/stdc++ ...

  4. bzoj2763: [JLOI2011]飞行路线(分层图spfa)

    2763: [JLOI2011]飞行路线 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3234  Solved: 1235[Submit][Stat ...

  5. [BZOJ2963][JLOI2011]飞行路线 分层图+spfa

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

  6. Bzoj 2763: [JLOI2011]飞行路线 拆点,分层图,最短路,SPFA

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

  7. 分层图+最短路算法 BZOJ 2763: [JLOI2011]飞行路线

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

  8. Bzoj 2763: [JLOI2011]飞行路线 dijkstra,堆,最短路,分层图

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

  9. BZOJ 2763: [JLOI2011]飞行路线 【分层图模板】

    任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=2763 2763: [JLOI2011]飞行路线 Time Limit: 10 Sec  M ...

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

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

随机推荐

  1. 字符串类String类的判断功能

    StringDemo.java /* * Object:是类层级结构中的根类,所有的类都直接或间接的继承自该类. * 如果一个方法的形式参数是Object,那么这里我们就可以传递它的任意的子类对象. ...

  2. Oracle on Azure

    价格列表 https://azure.microsoft.com/en-us/marketplace/partners/msopentech/oracle-db-12c/ Oracle-Base 安装 ...

  3. 【01】emmet系列之基础介绍

    [01]emmet系列之基础介绍 [02]emmet系列之HTML语法 [03]emmet系列之CSS语法 [04]emmet系列之编辑器 [05]emmet系列之各种缩写 相关网址 官网:http: ...

  4. 慕课笔记利用css进行布局【混合布局练习】

    通过学习div的布局,以一个简单的内容管理网站的布局为例子,用div+css进行简单的网页布局,加深学印象: <html> <head> <title>CSS+di ...

  5. HDU 2815 扩展baby step giant step 算法

    题目大意就是求 a^x = b(mod c) 中的x 用一般的baby step giant step 算法会超时 这里参考的是http://hi.baidu.com/aekdycoin/item/2 ...

  6. 【springmvc】传值的几种方式&&postman接口测试

    最近在用postman测试postman接口,对于springmvc传值这一块,测试了几种常用方式,总结一下.对于postman这个工具的使用也增加了了解.postman测试很棒,有了工具,测试接口, ...

  7. Servlet实现页面重定向

    以下内容引用自http://wiki.jikexueyuan.com/project/servlet/page-redirect.html: 当文档移动到一个新的位置时,通常会使用页面重定向,需要将客 ...

  8. Oracle建表提示SQL 错误: ORA-00904: : 标识符无效

    Oracle建表提示: 错误报告:SQL 错误: ORA-00904: : 标识符无效00904. 00000 -  "%s: invalid identifier"*Cause: ...

  9. maven bug之Maven:Non-resolvable parent POM: Failure to find错误

    使用Maven编译淘宝的TimeTunnel项目时遇到如下错误: [INFO] Scanning for projects...[ERROR] The build could not read 1 p ...

  10. SGU 439 A Secret Book

    解法: 对于第二个串,循环移动能得到的字典序最小的串,可以直接用最小表示法搞定. 然后用最小表示的第二个串和第一个串做两次扩展KMP,一次正常求,另外一次将两个串都反转一下,然后扫一遍ex[]数组 # ...