三分出两个中间的位置即可。

 /*
两次三分
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
using namespace std;
const int maxn = ;
const double eps = 1e-;
const double pi = acos(-1.0);
struct Point {
double x,y;
};
Point a,b,c,d;
double P,Q,R,ans1,ans2; double dis( Point aa,Point bb ){
return sqrt( (aa.x-bb.x)*(aa.x-bb.x)+(aa.y-bb.y)*(aa.y-bb.y) );
} double GetAns( double tt1,double tt2 ){
double ans;
Point temp1,temp2;
temp1.x = a.x+tt1*(b.x-a.x),temp1.y = a.y+tt1*(b.y-a.y);
temp2.x = c.x+tt2*(d.x-c.x),temp2.y = c.y+tt2*(d.y-c.y);
ans = dis( a,temp1 )/P+dis( temp1,temp2 )/R+dis( temp2,d )/Q;
return ans;
} double solve( double x ){
double L,R,mid1,mid2;
L = ;
R = ;
while( R-L>eps ){
mid1 = (L+R)/2.0;
mid2 = (mid1+R)/2.0;
if( GetAns( x,mid1 )<GetAns( x,mid2 ) ){
ans2 = mid1;
R = mid2;
}
else{
ans2 = mid2;
L = mid1;
}
}
return GetAns( x,ans2 );
} int main(){
int T;
scanf("%d",&T);
while( T-- ){
scanf("%lf%lf%lf%lf",&a.x,&a.y,&b.x,&b.y);
scanf("%lf%lf%lf%lf",&c.x,&c.y,&d.x,&d.y);
scanf("%lf%lf%lf",&P,&Q,&R);
double L,R,mid1,mid2;
L = ;
R = ;
while( R-L>eps ){
mid1 = (L+R)/2.0;
mid2 = (mid1+R)/2.0;
if( solve( mid1 )<solve( mid2 ) ){
ans1 = mid1;
R = mid2;
}
else{
ans1 = mid2;
L = mid1;
}
}
printf("%.2lf\n",GetAns( ans1,ans2 ));
}
return ;
}

HDU3400+三分的更多相关文章

  1. HDU3400 三分套三分

    题意 就是给你两条线段AB , CD ,一个人在AB以速度p跑,在CD上以q跑, 在其他地方跑速度是r.问你从A到D最少的时间. 三分AB ,然后再三分CD ,模板题目,这题卡精度 eps不能少 #i ...

  2. hdu3400(三分套三分)

    题意:平面上两条线段 AB,CD. A到B的速度v1,C到D的速度v2,其它地方的速度V3. 求A到D的最短时间. 解法:三分嵌套三分.首先假设AB上的点确定后.确定CD的点的确定应该是符合三分性质的 ...

  3. hdu3400 两重三分

    题意:      题意给你两个公路 A-B C-D 和三个速度V(ab) V(cd) 和 V(两条公路之间) 问你从A到D的最短时间是多少. 思路:    一开始暴力了其中的一条边,每次加0.01,另 ...

  4. hdu 2899 hdu 3400 三分/几何

    hdu2899 : 水提,直接三分,事实上求导后二分也能够. #include<iostream> #include<cstdio> using namespace std; ...

  5. hdu3714 三分找最值

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

  6. BZOJ 1857 传送带 (三分套三分)

    在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxhgww想从 ...

  7. hdu 4717(三分求极值)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 思路:三分时间求极小值. #include <iostream> #include ...

  8. HDU2438 数学+三分

    Turn the corner Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  9. 三分之一的程序猿之社交类app踩过的那些坑

    三分之一的程序猿之社交类app踩过的那些坑 万众创新,全民创业.哪怕去年陌生人社交不管融资与否都倒闭了不知道多少家,但是依然有很多陌生人社交应用层出不穷的冒出来.各种脑洞大开,让人拍案叫起. 下面我们 ...

随机推荐

  1. 跨站脚本攻击(XSS)

    跨站脚本攻击(XSS) XSS发生在目标网站中目标用户的浏览器层面上,当用户浏览器渲染整个HTML文档的过程中就出现了不被预期的脚本执行. 跨站脚本的重点不是在“跨站”上,而应该在“脚本上” 简单例子 ...

  2. iis7下.Net框架版本设置

    转载:http://blog.163.com/fan_yishan/blog/static/47692213201391651229542/ Win7下IIS网站的.Net框架版本设置 步骤/方法 1 ...

  3. MySQL类型属性Unsigned与ZeroFill

    1. Unsigned 就是将数字类型无符号化. int的类型范围是-2147483648~2147483647, int unsigned的类型范围是0~4294967295 Unsigned也可能 ...

  4. 【html】【17】高级篇--loading加载

    参考: http://aspx.sc.chinaz.com/query.aspx?keyword=%E5%8A%A0%E8%BD%BD&classID=835 下载:   http://sc. ...

  5. 详解Windows 7系统中IE8/IE9/IE10三个版本的关系(转)

    今年(2013)年初,微软开放了姗姗来迟的 IE10 for Windows 7 版本下载.至此,Windows 7 平台上可以运行三个 IE 浏览器版本.虽然 Windows 与 IE 经历了诸多版 ...

  6. Colored Linux Man pages

    Colored Linux Man pages 一.什么是Linux Man 参考: 二.如何高效率地使用Man 三.给Linux Man命令添加点颜色. 1.Unix / Linux: Displa ...

  7. [PR & ML 6] [Introduction] Information Theory

  8. 暑假集训(2)第三弹 ----- 食物链(poj1182)

    C - 食物链 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:10000KB     64bit ...

  9. ACM学习

    转:ACM大量习题题库   ACM大量习题题库 现在网上有许多题库,大多是可以在线评测,所以叫做Online Judge.除了USACO是为IOI准备外,其余几乎全部是大学的ACM竞赛题库.   US ...

  10. 使用Notepad++将多行数据合并成一行

    1.按Ctrl+F,弹出“替换”的窗口: 2.选择“替换”菜单: 3.“查找目标”内容输入为:\r\n: 4.“替换为”内容为空: 5.“查找模式”选择为正则表达式: 6.设置好之后,点击“全部替换” ...