洛谷P1266速度限制
传送门啦
看起来是一个最短路问题,但是引入了速度限制,就要写一下二维最短路了。
$ dis[i][j] $ :表示到i这个点,速度为j的最短时间。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
const int maxn = 600;
const int maxm = 200050;
inline int read(){
char ch = getchar();
int f = 1 , x = 0;
while(ch > '9' || ch < '0'){if(ch == '-')f = -1;ch = getchar();}
while(ch >= '0' && ch <= '9'){x = (x << 1) + (x << 3) + ch - '0';ch = getchar();}
return x * f;
}
int n,m,d,a,b,v,l;
int head[maxn],tot;
double dis[maxn][maxn];
bool inq[maxn][maxn];
struct Edge {
int from,to,val,next,len;
}edge[maxm << 1];
inline void add(int u,int v,int sp,int l){
edge[++tot].from = u;
edge[tot].to = v;
edge[tot].val = sp;
edge[tot].len = l;
edge[tot].next = head[u];
head[u] = tot;
}
struct Node {int u,v;};
Node pre[maxn][maxn];
inline void spfa(){
queue<Node> q;
q.push((Node) {0 , 70});
for(int i=0;i<=n;i++)
for(int j=0;j<=500;j++){
dis[i][j] = 1e9;
pre[i][j].u = pre[i][j].v = -1;
}
dis[0][70] = 0 , inq[0][70] = 1;
while(!q.empty()){
Node cur = q.front();
q.pop();
int u = cur.u , v = cur.v;
inq[u][v] = 0;
for(int i=head[u];i;i=edge[i].next){
int to = edge[i].to;
int vv = edge[i].val ? edge[i].val : v;
if(dis[to][vv] > dis[u][v] + (double)edge[i].len / vv){
dis[to][vv] = dis[u][v] + (double)edge[i].len / vv;
pre[to][vv].u = u;
pre[to][vv].v = v;
if(!inq[to][vv]){
q.push((Node) {to , vv});
inq[to][vv] = 1;
}
}
}
}
}
inline void print(int u,int v){
if(pre[u][v].u != -1)
print(pre[u][v].u , pre[u][v].v);
printf("%d ",u);
}
int main(){
n = read(); m = read(); d = read();
for(int i=1;i<=m;i++){
a = read(); b = read(); v = read(); l = read();
add(a , b , v , l);
}
spfa();
double minn = 1e9;
int s = 0;
for(int i=0;i<=500;i++)
if(dis[d][i] < minn){
minn = min(minn , dis[d][i]);
s = i;
}
print(d , s);
return 0;
}
洛谷P1266速度限制的更多相关文章
- 洛谷 P1266 速度限制 最短路+SPFA算法
目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 题面 题目链接 P1266 速度限制 题目描述 在这个繁忙的社会中,我们往往不 ...
- 洛谷 P1266 速度限制
题目描述 在这个繁忙的社会中,我们往往不再去选择最短的道路,而是选择最快的路线.开车时每条道路的限速成为最关键的问题.不幸的是,有一些限速的标志丢失了,因此你无法得知应该开多快.一种可以辩解的解决方案 ...
- 洛谷 P1266 速度限制 题解
题面 这道题可以理解为是一个分层图,也可以理解为是二维的SPFA dis[i][j]表示到达i这个点速度为j的最短路 然后跑已经死了的SPFA就好了: #include <bits/stdc++ ...
- 洛谷1640 bzoj1854游戏 匈牙利就是又短又快
bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP
题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...
- 洛谷P1710 地铁涨价
P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交 讨论 题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...
- 洛谷P1371 NOI元丹
P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交 讨论 题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...
随机推荐
- android:shape的使用(+圆角ListView)(转)
http://dev.10086.cn/cmdn/wiki/index.php?doc-view-6087.html Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape ...
- python之旅:函数对象、函数嵌套、名称空间与作用域、装饰器
一 函数对象 一 函数是第一类对象,即函数可以当作数据传递 #1 可以被引用 #2 可以当作参数传递 #3 返回值可以是函数 #3 可以当作容器类型的元素 二 利用该特性,优雅的取代多分支的if de ...
- bug3 乱码问题
出现乱码问题是因为各软件之间的编码方式不同导致 1.tomcat修改编码方法: 2.myeclipse中修改编码方式的方法: window----preference ----general----- ...
- Nginx反向代理websocket配置实例(官网)
https://www.nginx.com/blog/websocket-nginx/ Blog Tech Rick Nelson of NGINX, Inc. May 16, 2014 NG ...
- aspx <%= %> 绑定变量问题及解决方法
aspx页面,前台页面需要用到后台变量字段的时候我们一般使用 <%= 变量 %>,多数情况下使用正常. 但是有的时候就会遇到变量解析被编码的情况,特别是是在head当中css引用lin ...
- svn 节点处冲突 解决
问题描述: [root@localhost ] $ svn up 正在升级 ‘.’: 已跳过 ‘bg0605’ – 节点处于冲突状态 版本 175. 冲突概要: 跳过的路径:1 解决方法: 当前目录下 ...
- 2017 清北济南考前刷题Day 5 morning
期望得分:100+100+0=200 实际得分: 坐标的每一位不是0就是1,所以答案就是 C(n,k) #include<cstdio> #include<iostream> ...
- ASP.net--全局程序文件:Global.asax
ASP.NET应用程序只能有一个Global.asax文件,该文件支持许多项. •Application_Start:在应用程序接收到第一个请求时调用,这是在应用程序中给应用程序级的变量赋值或指定对所 ...
- Windows上安装QT4后更改MinGW的路径
在windows上安装使用MinGW的QT4时,并不会一起安装MinGW. 在安装过程中,会让你指定已经安装的MinGW的路径. 当你使用QT4时,将使用你指定的MinGW的路径下的g++来编译构建程 ...
- virtual Box在Centos 7上的安装
1.首先,我们需要在oracle官网下载virtual Box的centos7版本: 下载地址为:http://download.virtualbox.org/virtualbox/5.0.12/Vi ...