【题意概述】

  某个物体要从A途经B到达C,在通过B的时候速度不能超过vd.  它的加速度为a,最大速度为vm;AB之间距离为d,AC之间距离为L; 问物体最少花多少时间到达C.

【题解】

  分情况讨论。

  若物体一直加速,通过B之前速度已经超过了vd,那么显然物体必须先加速后减速才能保证通过B是速度为vd.

    先加速后减速也分为两种情况:加速后立即减速、加速后保持最大速度vm一段时间后再减速。

    通过了B之后物体从速度vd一直加速,直至到达C或者达到最大速度vm.

  若物体无法在通过B之前达到vd,那么显然物体一直加速,之后保持最大速度vm前进即可。

  做完了以上的分析,我们就可以结合物理公式直接计算。

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define rg register
#define N 200010
using namespace std;
int a,vm,l,d,vd;
double ans;
inline int read(){
int k=,f=; char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(''<=c&&c<='')k=k*+c-'',c=getchar();
return k*f;
}
int main(){
a=read(); vm=read(); l=read(); d=read(); vd=read();
double t0=1.0*vd/a;
double s0=0.5*vd*t0;
// printf("%.2lf %.2lf\n",t0,s0);
if(s0<d&&vm>=vd){
// puts("a1");
double t1=1.0*(vm-vd)/a;
double s1=(vd+vm)*t1;
if(s0+s1<=d){
ans=t0+t1+t1+(d-s0-s1)/vm;
}
else{
double delta=*vd*vd-*a*(s0-d);
t1=1.0*(-*vd+sqrt(delta))/(*a);
ans=t0+t1+t1;
}
// printf("%.7lf\n",ans);
int d2=l-d;
double t2=1.0*(vm-vd)/a;
double s2=(vd+vm)*t2/;
if(s2<d2){
// puts("c1");
ans+=t2+1.0*(d2-s2)/vm;
}
else{
// puts("c2");
double vx=sqrt(vd*vd+*a*d2);
double t3=(vx-vd)/a;
ans+=t3;
}
}
else{
// puts("a2");
double v=sqrt(*a*d);
// printf("%.2lf\n",v);
if(v>=vm){
double t1=1.0*vm/a;
ans=t1+(d-vm*t1/)/vm+1.0*(l-d)/vm;
}
else{
double t1=1.0*v/a;
ans=t1;
// printf("%.7lf\n",ans);
int d2=l-d;
double t2=1.0*(vm-v)/a;
double s2=(v+vm)*t2/;
// printf("%.2lf\n",s2);
if(s2<d2){
ans+=t2+1.0*(d2-s2)/vm;
}
else{
double vx=sqrt(v*v+*a*d2);
double t3=(vx-v)/a;
ans+=t3;
}
}
}
printf("%.12lf\n",ans);
return ;
}

Codeforces 5D Follow Traffic Rules的更多相关文章

  1. Codeforces Beta Round #5 D. Follow Traffic Rules 物理

    D. Follow Traffic Rules 题目连接: http://www.codeforces.com/contest/5/problem/D Description Everybody kn ...

  2. codeforces 5D

    D. Follow Traffic Rules time limit per test 1 second memory limit per test 64 megabytes input standa ...

  3. 【codeforces 29B】Traffic Lights

    [题目链接]:http://codeforces.com/problemset/problem/29/B [题意] 一辆车; 让从A开到B; 然后速度是v; (只有在信号灯前面才能停下来..否则其他时 ...

  4. Codeforces Round #382 (Div. 2)C. Tennis Championship 动态规划

    C. Tennis Championship 题目链接 http://codeforces.com/contest/735/problem/C 题面 Famous Brazil city Rio de ...

  5. 【17.76%】【codeforces round 382C】Tennis Championship

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  6. Traffic Lights

    Traffic Lights time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...

  7. Codeforces Round #382 (Div. 2) C. Tennis Championship 斐波那契

    C. Tennis Championship time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  8. Painting The Wall 期望DP Codeforces 398_B

    B. Painting The Wall time limit per test 1 second memory limit per test 256 megabytes input standard ...

  9. Codeforces Round #256 (Div. 2) 题解

    Problem A: A. Rewards time limit per test 1 second memory limit per test 256 megabytes input standar ...

随机推荐

  1. SpringAOP和Spring事物管理

    Spring AOP : Pointcut表达式: designators-指示器 wildcards-通配符 operators-操作符 wildcards: * -- 匹配任意数量的字符 + -- ...

  2. jquery $.trim()方法的介绍

    http://www.jb51.net/article/50282.htm

  3. 微信小程序开发常见的拉起外部地图软件进行导航的功能

    <view class="dh" bindtap="mapNavigation" data-addr="{{address}}"> ...

  4. jQuery removeAttr() 源码解读

    removeAttr比attr的代码要简单很多~~~ removeAttr: function( name ) { return this.each(function() { jQuery.remov ...

  5. android开发学习 ------- 【转】EventBus的学习理解

    EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间.组件与后台线程间的通信. 比如请求网络,等网络返回时通过Handler或Broadca ...

  6. 【译】OpenStack Heat基础介绍

    原文:http://blog.scottlowe.org/2014/05/01/an-introduction-to-openstack-heat/ 本文将简要地介绍OpenStack Heat. H ...

  7. UVA 10288 Coupons 彩票 (数学期望)

    题意:一种刮刮卡一共有n种图案,每张可刮出一个图案,收集n种就有奖,问平均情况下买多少张才能中奖?用最简的分数形式表示答案.n<=33. 思路:这题实在好人,n<=33.用longlong ...

  8. JAVA自带的加密算法-MD5\SHA1\BASE64

    需要导入jar包: commons-codec.jar MD5 String str = "abc"; DigestUtils.md5Hex(str); SHA1 String s ...

  9. String系列之replaceAll方法替换.

    直接使用String类的replaceall方法的第一个参数并不是简单的字符串,而是一个正则表达式.在正则表达式中,英文点号(.)表示任意字符,所以你原先的写法会把所有字符都替换成空白. 转义使用所以 ...

  10. 解决margin塌陷问题

    父元素添加: border: 1px solid transparent; 或者 over-flow:hidden;