题目链接


Solution

在最短路转移的时候在队列或者堆中记录状态为 \(f[u][v]\) 代表上一个节点为 \(u\) ,速度为 \(v\) .

然后按部就班转移即可...


Code

  1. #include<bits/stdc++.h>
  2. #define ff double
  3. using namespace std;
  4. struct sj{int v,to,next;ff w;}a[10008];
  5. struct node{int u,v;};
  6. int head[508],size;
  7. int n,m,d,v[208][508];
  8. ff dis[208][508];
  9. node pre[208][508];
  10. void add(int x,int y,int v,ff w)
  11. {
  12. a[++size].to=y;
  13. a[size].next=head[x];
  14. head[x]=size;
  15. a[size].w=w;
  16. a[size].v=v;
  17. }
  18. void spfa()
  19. {
  20. queue<node>q;
  21. q.push((node){0,70});
  22. dis[0][70]=0;v[0][70]=1;
  23. while(q.empty()!=1)
  24. {
  25. node x=q.front();
  26. q.pop(); int u=x.u,sp=x.v;
  27. for(int i=head[u];i;i=a[i].next)
  28. {
  29. int tp=0,tt=a[i].to;
  30. tp=(a[i].v?a[i].v:sp);
  31. if(tp)
  32. if(dis[tt][tp]>dis[u][sp]+(a[i].w*1.0/tp*1.0))
  33. {
  34. pre[tt][tp]=x;
  35. dis[tt][tp]=dis[u][sp]+(a[i].w*1.0/tp*1.0);
  36. if(!v[tt][tp])
  37. {
  38. q.push((node){tt,tp});
  39. v[tt][tp]=1;
  40. }
  41. }
  42. }
  43. v[u][sp]=0;
  44. }
  45. }
  46. void print(int x,int speed)
  47. {
  48. if(x!=0)
  49. print(pre[x][speed].u,pre[x][speed].v);
  50. cout<<x<<' '; return;
  51. }
  52. int main()
  53. {
  54. scanf("%d%d%d",&n,&m,&d);
  55. for(int i=1;i<=n;i++)
  56. for(int j=0;j<=500;j++)
  57. dis[i][j]=19260817;
  58. for(int i=1;i<=m;i++)
  59. {
  60. int x,y,v; ff w;
  61. scanf("%d%d%d%lf",&x,&y,&v,&w);
  62. add(x,y,v,w);
  63. }
  64. spfa();
  65. ff now=192608173;
  66. int ans;
  67. for(int i=1;i<=500;i++)
  68. {
  69. if(dis[d][i]<now)
  70. now=dis[d][i],ans=i;
  71. }
  72. print(d,ans);
  73. }

P1266 速度限制 (最短路,图论)的更多相关文章

  1. 洛谷 P1266 速度限制 最短路+SPFA算法

    目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 题面 题目链接 P1266 速度限制 题目描述 在这个繁忙的社会中,我们往往不 ...

  2. P1266 速度限制(分层图spfa)

    P1266 速度限制 题目描述 在这个繁忙的社会中,我们往往不再去选择最短的道路,而是选择最快的路线.开车时每条道路的限速成为最关键的问题.不幸的是,有一些限速的标志丢失了,因此你无法得知应该开多快. ...

  3. P1266 速度限制

    P1266 速度限制 第一次接触这种分层spfa 类似于dp 个人理解 #include<cstdio> #include<iostream> #include<algo ...

  4. 【题解】Vijos1404 遭遇战(最短路图论套路)

    [题解]Vijos1404 遭遇战(最短路图论套路) 感觉一定要有建模的思想,不管什么东西要抽象建模之后再用算法解决... 求最短代价就可能可以用最短路,这句话不是强行解释,而是因为图论建模过后,可能 ...

  5. 洛谷P1266速度限制

    传送门啦 看起来是一个最短路问题,但是引入了速度限制,就要写一下二维最短路了. $ dis[i][j] $ :表示到i这个点,速度为j的最短时间. #include <iostream> ...

  6. 洛谷 P1266 速度限制

    题目描述 在这个繁忙的社会中,我们往往不再去选择最短的道路,而是选择最快的路线.开车时每条道路的限速成为最关键的问题.不幸的是,有一些限速的标志丢失了,因此你无法得知应该开多快.一种可以辩解的解决方案 ...

  7. 洛谷 P1266 速度限制 题解

    题面 这道题可以理解为是一个分层图,也可以理解为是二维的SPFA dis[i][j]表示到达i这个点速度为j的最短路 然后跑已经死了的SPFA就好了: #include <bits/stdc++ ...

  8. 21.多源最短路(floyd算法)

    时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 已知n个点(n<=100),给你n*n的方阵,a[i,j] ...

  9. 2021record

    2021-10-14 P2577 [ZJOI2004]午餐 2021-10-13 CF815C Karen and Supermarket(小小紫题,可笑可笑) P6748 『MdOI R3』Fall ...

随机推荐

  1. Leetcode重点 250题-前400 题

    删除不常考,面试低频出现题目 删除重复代码题目(例:链表反转206题,代码在234题出现过) 删除过于简单题目(例:100题:Same Tree) 删除题意不同,代码基本相同题目(例:136 & ...

  2. JSONPath - XPath for JSON

    http://goessner.net/articles/JsonPath/ [edit] [comment] [remove] |2007-02-21| e1 # JSONPath - XPath ...

  3. Visual Studio Professional 2015 简体中文专业版 序列号

    Visual Studio Professional 2015 简体中文专业版 专业版激活密钥:HMGNV-WCYXV-X7G9W-YCX63-B98R2 Visual Studio Enterpri ...

  4. NPM下载模块包说明

    博主对npm包安装收集了各种资料和实践后对它们之间的差异整理,写下这篇文章避免自己忘记,同时也给node.js猿友一点指引. 我们在使用 npm install 安装模块的模块的时候 ,一般会使用下面 ...

  5. iOS应用架构谈part4-本地持久化方案及动态部署

    前言 嗯,你们要的大招.跟着这篇文章一起也发布了CTPersistance和CTJSBridge这两个库,希望大家在实际使用的时候如果遇到问题,就给我提issue或者PR或者评论区.每一个issue和 ...

  6. Voyager的Roles和Pemissions

    以Page为例讲解: 取消admin的roles下Pages的Browse Pages权限: 打开web.php文件,添加: Route::get('pages', function(){ retur ...

  7. 使用powershell批量更新git仓库

    Get-ChildItem D:\GitHub\NetCore | ForEach-Object -Process{ cd $_.name; git pull; cd ../ }

  8. python之自定义排序函数sorted()

    sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面, ...

  9. C与C++接口相互调用

    转载于:http://blog.csdn.net/lincoln_2012/article/details/50801080 项目中经常使用C和C++混合编程,那么,在调用对方接口时,总是不可避免地出 ...

  10. Centos7 安装 OwnCloud 私有云

    OwnCloud 一款文件主机服务软件,就是我们平时使用的云存储,不过这是在自己主机的服务器上建立属于自己的私有云,OwnCloud 使用AGPLv3协议发布.本项目是基于PHP和SQLite,MyS ...