xmu 1125.越野车大赛

Description

TheBeet正在參加一场越野车大赛。比赛的场地如右图:共分三块。每一块地面的长宽均为N与M,但地表情况不同。越野车在这段路面上的最快速度也不同。

蓝色线表示TheBeet可能的行车路线。

比赛的要求是要求选手从比赛的场地左上角驾车至右下角。

TheBeet想知道假设他在全部路段都以最高速度行驶(不考虑加速阶段),最快能在多少时间内完毕比赛。

Input

  输入数据的第一行为两个正整数N M(N<=3000,M<=1000),表示一块路面的长和宽。

  第二行为三个正整数S1,S2,S3(0<S1,S2,S3<=100)。从上至下依次表示各个路面上越野车的最快速度。

Output

  输出一个实数表示TheBeet最快能在多少时间内完毕比赛。请输出一个尽可能精确的数字,控制误差在±0.000001的内。

Sample Input

30 10

2 5 3

Sample Output

13.7427361525

Hint

  假设你的输出和结果的相差在0.000001之内,则觉得是正确答案。

思路:

这个题目不错。横线N上有两个点。先要确定第一个x1,x1可能为mid1或midmid1;1,以mid1为基准求第二个点     2,以midmid1为基准求第二个点。

比較两个结果再一次三分求极值。

代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
#define eps 1e-7
int n,m;
int s1,s2,s3; double cal(double x,double y)
{
return sqrt(m*m+x*x)/s1+sqrt(m*m+y*y)/s2+sqrt(m*m+(n-x-y)*(n-x-y))/s3;
} int main()
{
cin>>n>>m;
cin>>s1>>s2>>s3;
double ans=0xfffffff;
double l=0,h=n,ll=0,hh=n;
double mid1,midmid1,mid2,midmid2;
double t1,t2,t11,t22;
while(h-l>eps)
{
mid1=(l+h)/2;
midmid1=(mid1+h)/2;
//ans1=cal(mid1);
//ans11=cal(midmid1);
ll=0,hh=n;
while(hh-ll>eps)
{
mid2=(ll+hh)/2;
midmid2=(mid2+hh)/2;
t11=cal(mid1,mid2);
t22=cal(mid1,midmid2);
if(t11<t22)
hh=midmid2;
else
ll=mid2;
}//计算mid1为基准的第二个点的位置
t1=cal(mid1,ll);
ll=0,hh=n;
while(hh-ll>eps)
{
mid2=(ll+hh)/2;
midmid2=(mid2+hh)/2;
t11=cal(midmid1,mid2);
t22=cal(midmid1,midmid2);
if(t11<t22)
hh=midmid2;
else
ll=mid2;
}
t2=cal(midmid1,ll);
if(t1<t2)
{
h=midmid1;ans=min(ans,t1);
}
else
{
l=mid1;ans=min(ans,t2);
}
}
printf("%.10lf\n",ans);
return 0;
}

xmu 1125 越野车大赛(公式推导&amp;&amp;三分)(中等)的更多相关文章

  1. XMU 1125 越野车大赛 【三分】

    1125: 越野车大赛 Time Limit: 500 MS  Memory Limit: 64 MB  Special JudgeSubmit: 8  Solved: 4[Submit][Statu ...

  2. xmu1125 越野车大赛(三分)

    1125: 越野车大赛 Time Limit: 500 MS  Memory Limit: 64 MB  Special JudgeSubmit: 4  Solved: 3[Submit][Statu ...

  3. 【转】lonekight@xmu·ACM/ICPC 回忆录

    转自:http://hi.baidu.com/ordeder/item/2a342a7fe7cb9e336dc37c89 2009年09月06日 星期日 21:55 初识ACM最早听说ACM/ICPC ...

  4. 2017"百度之星"程序设计大赛 - 复赛 01,03,05

    Arithmetic of Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  5. NDT(Normal Distributions Transform)算法原理与公式推导

    正态分布变换(NDT)算法是一个配准算法,它应用于三维点的统计模型,使用标准最优化技术来确定两个点云间的最优的匹配,因为其在配准过程中不利用对应点的特征计算和匹配,所以时间比其他方法快.下面的公式推导 ...

  6. 2015游戏蛮牛——蛮牛杯第四届开发者大赛 创见VR未来开启报名

    蛮牛杯启动了,大家开始报名! http://cup.manew.com/ 这不是一篇普通的通稿,别着急忽略它.它是一篇可以让你梦想变现的通稿! 从某一天开始,游戏蛮牛就立志要为开发者服务,我们深知这一 ...

  7. codevs 3288 积木大赛

    题目描述 Description 春春幼儿园举办了一年一度的"积木大赛".今年比赛的内容是搭建一座宽度为 n 的大厦,大厦可以看成由 n 块宽度为1的积木组成,第i块积木的最终高度 ...

  8. hdu3714 三分找最值

    Error Curves Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  9. 详解Maple如何公式推导和生成代码

    公式推导 直观自然的数学表达式,智能的关联菜单,交互式助手等协助您从容通过推导过程,让您更容易地完成解决方案的开发,快速.无错! 分析 Maple 内置超过大量的计算函数,包括积分变换,微分方程求解器 ...

随机推荐

  1. 【递推】【概率】Gym - 100814A - Arcade Game

    题意:给你一个不超过九位的不含重复数码的十进制数,每次会随机将它的数码打乱,变成一个新的数,如果它小于等于上一次的数,那么你输了:如果它大于上一次的数,那么可以继续.直到它变成能够表达的最大数为止就赢 ...

  2. 【最小表示法】BZOJ2882-工艺

    [题目大意] 求一个循环数列的最小表示法. [思路] 最小表示法模板题.之前用SAM做的,MLE了hhhhh戳☆ #include<iostream> #include<cstdio ...

  3. PHP_EOL 换行符

    换行符unix系列用 \nwindows系列用 \r\nmac用 \rPHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性 如:  <?php    echoPHP_EOL;    ...

  4. bzoj 3685: 普通van Emde Boas树

    3685: 普通van Emde Boas树 Description 设计数据结构支持:1 x  若x不存在,插入x2 x  若x存在,删除x3    输出当前最小值,若不存在输出-14    输出当 ...

  5. fir.im Weekly - 嘘,关于***!

    上 Github 交友刷 StackOverflow 解惑,是攻城狮必备技能,加快打怪练级速度.关于,@左耳朵耗子 在微博上分享了一篇文档,轻一点教你建一个VPN服务器,重一点到教你在路由器上***, ...

  6. 记git升级版本之后出现fatal: NullReferenceException encountered问题

    问题缘由 因为实习的时候,公司要求将Git升级到最新版本,然后我就升级了. 这里之前有一段小插曲: 因为最初下载Git的本地目录是中文目录,然后在webstorm里面配置Git的路径时最好是用英文的路 ...

  7. centos安装pcre

    安装pcre前需要已安装gcc工具 1.跳转下载目录 cd install-file 2.下载pcre wget ftp://ftp.csx.cam.ac.uk/pub/software/progra ...

  8. apache 与 iis共存

    先装上了apache ,再装iis会出现错误.所以先关闭apache,再进行iis安装.iis安装完后修改iis80端口为8080端口, 同时使用命令 cd C:\Inetpub\AdminScrip ...

  9. Spring构造方法注入类型歧义

    在Spring框架中,当一个类包含多个构造函数带的参数相同,它总是会造成构造函数注入参数类型歧义的问题. 问题 让我们来看看这个客户 bean 实例.它包含两个构造方法,均接受3个不同的数据类型参数. ...

  10. 如何屏蔽PHP浏览器头信息X-Powered-By

    将 php.ini 中,将 “expose_php = On” 改为 “expose_php = Off”