codeforces 5D
1 second
64 megabytes
standard input
standard output
Everybody knows that the capital of Berland is connected to Bercouver (the Olympic capital) by a direct road. To improve the road's traffic capacity, there was placed just one traffic sign, limiting the maximum speed. Traffic signs in Berland are a bit peculiar, because they limit the speed only at that point on the road where they are placed. Right after passing the sign it is allowed to drive at any speed.
It is known that the car of an average Berland citizen has the acceleration (deceleration) speed of a km/h2, and has maximum speed of v km/h. The road has the length of l km, and the speed sign, limiting the speed to w km/h, is placed d km (1 ≤ d < l) away from the capital of Berland. The car has a zero speed at the beginning of the journey. Find the minimum time that an average Berland citizen will need to get from the capital to Bercouver, if he drives at the optimal speed.
The car can enter Bercouver at any speed.
The first line of the input file contains two integer numbers a and v (1 ≤ a, v ≤ 10000). The second line contains three integer numbers l, d and w (2 ≤ l ≤ 10000; 1 ≤ d < l; 1 ≤ w ≤ 10000).
Print the answer with at least five digits after the decimal point.
1 1
2 1 3
2.500000000000
5 70
200 170 40
8.965874696353
吐槽:这真是一道有意思的题。。纯高中物理题用代码实现的感觉就是不一样呀
题意:一辆车初速度为0,以恒定的加速度a在长为l的公路上行驶,据起点d处有一测速点,要求车到达此点时速度不得超过w,求走完这条公路的最短时间。
解题思路:跟高中做物理题一样,一点一点分析。
下面是我的分析:
一 v<=w
1.一直加速到终点
2.加速到v后匀速到终点
二 v>w
1.在d段中一直加速也到不了w,那就一直加速
2.在d段中加速超过w到达v1,然后减速在d点刚好速度为w
3.在d段中加速超过w到达v,接着匀速一段,然后减速在d点刚好速度为w
以上三种情况到达d后,再按照一中两个情况分析(l-d)的路程。
附ac代码:
1 #include <cstdio>
2 #include <cstring>
3 #include <iostream>
4 #include <algorithm>
5 #include <stack>
6 #include <cmath>
7 using namespace std;
8 int main() {
9 ios::sync_with_stdio(false);
10 cin.tie(0);cout.tie(0);
11 double a,v,l,d,w;
12 scanf("%lf%lf%lf %lf%lf",&a,&v,&l,&d,&w);
13 double ans=0,t1=0,t2=0,x1=0,x2=0;
14 double det=0;
15 if(v<=w) {
16 t1=v/a;
17 x1=0.5*a*t1*t1;
18 if(x1>=l) {
19 ans=sqrt(2*l/a);
20 }
21 else {
22 x2=l-x1;
23 t2=x2/v;
24 ans=t1+t2;
25 }
26 }
27 else {
28 t1=sqrt(2*d/a);
29 if(t1*a<=w) {
30 t1=v/a;
31 x1=0.5*a*t1*t1;
32 if(x1>=l) {
33 ans=sqrt(2*l/a);
34 }
35 else {
36 x2=l-x1;
37 t2=x2/v;
38 ans=t1+t2;
39 }
40 }
41 else {
42 det=sqrt(2*w*w+4*a*d);
43 t2=(det-2*w)/(2*a);
44 if(w+a*t2<=v){
45 t1=(w+a*t2)/a;
46 ans=t1+t2;
47 }
48 else {
49 t1=v/a;
50 t2=(v-w)/a;
51 x1=0.5*a*t1*t1+v*t2-0.5*a*t2*t2;
52 x2=d-x1;
53 ans=t1+t2+x2/v;
54 }
55
56 t1=(v-w)/a;
57 x1=w*t1+0.5*a*t1*t1;
58 if(x1>(l-d)) {
59 det=sqrt(w*w+2*a*(l-d));
60 ans+=(det-w)/a;
61 }
62 else {
63 ans+=t1;
64 x2=l-d-x1;
65 ans+=(x2/v);
66 }
67 }
68 }
69 printf("%.12lf\n",ans);
70 return 0;
71 }
codeforces 5D的更多相关文章
- Codeforces 5D Follow Traffic Rules
[题意概述] 某个物体要从A途经B到达C,在通过B的时候速度不能超过vd. 它的加速度为a,最大速度为vm:AB之间距离为d,AC之间距离为L: 问物体最少花多少时间到达C. [题解] 分情况讨论. ...
- Codeforces Round #382 (Div. 2) D. Taxes 哥德巴赫猜想
D. Taxes 题目链接 http://codeforces.com/contest/735/problem/D 题面 Mr. Funt now lives in a country with a ...
- Codeforces Round #509 (Div. 2) F. Ray in the tube(思维)
题目链接:http://codeforces.com/contest/1041/problem/F 题意:给出一根无限长的管子,在二维坐标上表示为y1 <= y <= y2,其中 y1 上 ...
- Codeforces 1375F - Integer Game(交互)
Codeforces 题面传送门 & 洛谷题面传送门 一个奇怪的做法. 首先我们猜测答案总是 First.考虑什么样的情况能够一步把对方一步干掉.方便起见我们假设 \(a<b<c\ ...
- python爬虫学习(5) —— 扒一下codeforces题面
上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【Codeforces 738C】Road to Cinema
http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...
- 【Codeforces 738A】Interview with Oleg
http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...
- CodeForces - 662A Gambling Nim
http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...
随机推荐
- EXPORT和IMPORT使用示例
1 report ztestprog. 2 data:begin of itab1 occurs 0, 3 ff(10), 4 end of itab1. 5 data:itab2 like itab ...
- GlusterFS数据存储脑裂修复方案最全解析
本文档介绍了glusterfs中可用于监视复制卷状态的heal info命令以及解决脑裂的方法 一. 概念解析 常见术语 名称 解释 Brick GlusterFS 的基本存储单元,由可信存储池中服务 ...
- 计算机网络安全 —— 非对称加密算法 RSA 和数字签名(二)
一.非对称加密算法基本概念 在对称密钥系统中,两个参与者要共享同一个秘密密钥.但怎样才能做到这一点呢?一种是事先约定,另一种是用信使来传送.在高度自动化的大型计算机网络中,用信使来传送密钥显然是不合适 ...
- Cisco发现协议
CDP Cisco Discovery Protocol: 思科发现协议 是一个提供关于直接相连的交换机.路由器和其它Cisco设备的综合信息的专有工具 CDP 能够发现直接相邻的设备而不管这些设备所 ...
- chain issues incorrect order,EXtra certs,Contains anchor
背景: 下载颁发下来的ssl证书安装好之后网站正常显示安全,但是通过ssl证书网站去检测报错误:chain issues incorrect order,EXtra certs,Contains an ...
- Linux下运行java报错:Error: Could not find or load main class SocketIOPropertites
[root@node01 testfileio]# javac SocketIOPropertites.java && java Soc ketIOPropertitesError: ...
- TCP报文段的首部格式 20字节的固定首部
<---- IP首部 TCP首部 TCP报文段的数据部分 <---- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...
- Java内存溢出处理
在解决java内存溢出问题之前,需要对jvm(java虚拟机)的内存管理有一定的认识. jvm管理的内存大致包括三种不同类型的内存区域:Permanent Generation space(永久保存区 ...
- 学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用
学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用 一.SpringBoot系列教程 二.SpringBoot ...
- MySQL索引的原理,B+树、聚集索引和二级索引
MySQL索引的原理,B+树.聚集索引和二级索引的结构分析 一.索引类型 1.1 B树 1.2 B+树 1.3 哈希索引 1.4 聚集索引(clusterd index) 1.5 二级索引(secon ...