xmu 1125 越野车大赛(公式推导&&三分)(中等)
来源:互联网 发布:uploadify php 编辑:程序博客网 时间:2024/06/09 19:45
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-7int 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;}
1 0
- xmu 1125 越野车大赛(公式推导&&三分)(中等)
- xmu 1125 - 越野车大赛(三分)
- XMU 1125 越野车大赛 【三分】
- XMU(厦门大学OJ) 1125 越野车大赛
- FZU 2168 防守阵地 I(公式推导)(经典)(中等)
- 公式推导
- Catalan数公式推导
- 平方和公式推导
- 推导坐标旋转公式
- 点乘公式推导
- POJ1183 公式推导
- plsa 公式推导
- JMP地址公式推导
- JMP地址公式推导
- hdu4602 - Partition(公式推导)
- HDU4602+数学+推导公式
- 推导坐标旋转公式
- 推导坐标旋转公式
- 构造函数初始化列表和构造函数体内赋值
- 204Count Primes
- java中String s="abc"及String s=new String("abc")详解
- 图片变灰色
- 多表查询笔记
- xmu 1125 越野车大赛(公式推导&&三分)(中等)
- PHP 常用代码片段
- 查看内核版本
- 16进制
- FreeRTOS 操作系统介绍
- cocos2dx-3.1 接入多盟广告sdk+Android (1)
- sublime text 3 快捷键
- Filter实现原理及内部流程
- POJ 2993:Emag eht htiw Em Pleh