[机房练习赛4.3]drive
Problem 2. drive
Input file: drive.in
Output file: drive.out
Time limit: 2 second
工头cky 最近开了一家贸易公司,开始经商。作为cky 的忠实小弟,jyb 当了cky 老总的司机。一天晚上,
cky 突然找到了一个新的客户,所以第二天一早要急着从成都去上海谈生意(设全国一共有n 个城市, 成都
编号为1,上海编号为n),城市之间有高速公路,每条高速公路都有一个最高限速和长度。cky 想:我应该
在今晚就告诉客户我最快多久能到上海,不然客户就可能先和别人谈生意了。所以他就让jyb 计算一下最快
多久能到。
jyb 作为一名经验丰富的老司机,看了一眼天气预报,天气预报说:全国范围内有一条高速公路第二天可能
下大雨(大雨天气的话,车速会下降75%),但坑爹的是居然不知道是哪一条,准确信息要第二天一早才知
道。现在jyb 拥有全国高速公路图,为了回答一个尽量早但又不失信于客户的时间,jyb 想请你帮帮忙。
ps: 虽然cky 很急,但是他还是告诫jyb 不能超速行驶。
第二天知道哪会下雨后,jyb 自然会作出正确的抉择。
迟到肯定就是失信于客户啦!
Input
第1 行,2 个整数n;m,表示城市数和高速公路数。
接下来m 行,每行4 个整数u; v; speed; length,表示该条高速公路连接的两个城市u; v,以及最高限速speed
和路长length。
Output
输出满足题意的时间,保留4 位小数。
Sample
drive.in
3 3
1 2 100 100
2 3 100 100
1 3 100 400
drive.out
4.0000
drive.in
2 1
1 2 100 100
drive.out
4.0000
Note
• 对于30% 的数据,1 n 102,1 m 103;
• 对于100% 的数据,1 n 4 103,1 m 104,60 speed 120 ,200 length 1000。
注意是单向边(题说错了)
盗版玛丽卡,STL优化dijkstra超时(因为是稀疏图)
先求最短路,在一条一条地下雨
#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cstring>
const double INF = 1000000000.0;
const int maxn = 40005;
const int maxm = 300000 + 5;
using namespace std;
struct edge{int u,v,next;double w;
}e[maxm];
int h[maxn],cnt,pre[maxn];
double dis[maxn];
bool vis[maxn];
int q[maxn],head,tail;
int n,m;void adde(int u,int v,double w){e[++cnt].u = u;e[cnt].v = v;e[cnt].w = w;e[cnt].next = h[u];h[u] = cnt;
}void init(){for(int i = 2; i <= n; i++)dis[i] = 1000000.0;head = 0;tail = 1;q[0] = 1;vis[1] = true;
}double spfa( bool ort ){init();while( head != tail ){int u = q[head];for( int i = h[u]; i; i = e[i].next){int v = e[i].v;if( dis[v] > dis[u] + e[i].w ){dis[v] = dis[u] + e[i].w;if( ort )pre[v] = i;if( !vis[v] ){vis[v] = true;q[tail] = v;tail++;}}}vis[u] = false;head++;}return dis[n];
}int main() {freopen("drive.in","r",stdin);freopen("drive.out","w",stdout);scanf("%d%d",&n,&m);int u,v;double spd,len;for( int i = 1; i <= m; i++ ){scanf("%d%d%lf%lf",&u,&v,&spd,&len);adde(u,v,len/spd);}int now = n;double ans = spfa(true);while( now != 1 ){e[pre[now]].w *= 4.0;ans = max(ans,spfa(false));e[pre[now]].w /= 4.0;now = e[pre[now]].u;}printf("%.4lf\n",ans);return 0;
}
[机房练习赛4.3]drive相关推荐
- [机房练习赛4.7] 深意 KMP
深意(meaning.in/meaning.out) 有的词语常常别有深意,比如hehe可以单纯的表示hehe,也可以表示"excuse me?!",现给出一段话s,和一个单词t, ...
- 【机房练习赛 5.15】奇袭 CF526F Pudding Monsters
题面 Pudding Monsters 问题描述 由于各种原因,桐人现在被困在 UnderWorldUnder WorldUnderWorld(以下简称 UWUWUW)中,而 UWUWUW 马上要迎来 ...
- 20170117 机房『练习赛』
20170117 机房『练习赛』 现代科学,面广枝繁,不是一辈子学得了的.惟一的办法是集中精力,先打破一缺口,建立一块或几块根据地,然后乘胜追击,逐步扩大研究领域.此法单刀直入,易见成效. -- 王梓 ...
- 机房对拷软件使用随记 非ABC类IP能作为局域网吗?
一.机房对拷软件使用随记 教室环境:后方一个TPLINK总交换机,串联9个tplink 8口百兆交换机 + 1个8口百兆H3C交换机. 现在故障:客户进行对拷操作,速度极慢(10MB/min),过了一 ...
- Hard Drive
无意中看到博客堂的一篇关于微软创业的帖子.回想当初,自己11岁的时候,就开始学习计算机编程,也是因为一本Bill Gates写的<未来之路>,才激发自己对于计算机,对于编程那么大的热情. ...
- 机房收费系统总结【5】——无用功
前言: 机房开始得晚,听同学们说画流程图有助于了解逻辑!所以我就开始吭哧吭哧的画流程图!后来发现流程图的作用就是帮助我理解别人代码,改进代码!因为很长的一段代码放那里,不容易直观理解! 过程: 但是在 ...
- 机房收费系统总结【2】-细节优化
前言: 机房收费的过程中遇到了很多以前没有发现的问题! 问题1: 我们都要给用户提示,询问用户是否确认关闭窗体,这个功能还是有必要的,万一一不小心点击退出!保障措施! 解决:在卸载事件里写这样的代码, ...
- 机房收费系统总结【1】-整体流程
前言: 拖了3个月终于学完了机房收费,真正做机房的时间不到一个月,拖了好久,不应该! 以后,在学习的过程中遇到的问题(计算机+心得体会)在今目标的项目上简单标注! 这个过程中自己解决的问题博客总结!还 ...
- 机房收费系统【VB版】——选择下机
前言: 今天实现机房收费系统--一般用户--学生上机状态查看--选中全部/部分下机部分收获很多!多亏了看光哥的博客,写的很清楚机房收费系统--上机状态查询之下机 过程: 要显示的表格式写查询,就会出来 ...
最新文章
- python编写通讯录管理系统_一个简单的python程序实例(通讯录)
- C语言编译、链接过程探究
- ProxySQL 故障
- 【图像处理opencv】_图像几何变换
- [13年迁移]firefoxfocus为火狐新建焦点事件
- idea进行断点快捷键
- Redis详解(五)——Redis多实例
- 软件测试基本功 系列教程
- 虚拟机nas服务器,VMware虚拟机搭建安装黑群晖NAS服务器
- c预言plc编程语言,【讨论】对于PLC的编程语言STL、LAD、SCL等,你用的哪种语言呢?...
- 应届生产品助理/经理面试,应当多谈点什么?
- 图谱笔记(概念梳理)
- 按计算机应用领域分类,按计算机用途分类
- 基础知识系列博客——计算机组成原理
- 计算机excel按F4是那个公式,excel中键盘F4到底怎么用?_excle 中的f4
- 关于基于kangle和EP面板使用CDN
- PAT 乙级真题 1032 挖掘机技术哪家强 (附测试点2)
- 【C51】基于51单片机的简易频率计(附代码、无需外设、小白简单易上手)
- mk突变点检测_MK检验突变分析 matlab
- 走航式海洋多参数剖面测量系统(MVP)验收记录