HDU 3400 Line belt 嵌套三分搜索
来源:互联网 发布:怎样关闭淘宝网店 编辑:程序博客网 时间:2024/06/11 22:21
Line belt
Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u
Submit
Status
Description
In a two-dimensional plane there are two line belts, there are two segments AB and CD, lxhgww’s speed on AB is P and on CD is Q, he can move with the speed R on other area on the plane.
How long must he take to travel from A to D?
Input
The first line is the case number T.
For each case, there are three lines.
The first line, four integers, the coordinates of A and B: Ax Ay Bx By.
The second line , four integers, the coordinates of C and D:Cx Cy Dx Dy.
The third line, three integers, P Q R.
0<= Ax,Ay,Bx,By,Cx,Cy,Dx,Dy<=1000
1<=P,Q,R<=10
Output
The minimum time to travel from A to D, round to two decimals.
Sample Input
1
0 0 0 100
100 0 100 100
2 2 1
Sample Output
136.60
嵌套三分
//嵌套三分#include<iostream>#include<stdio.h>#include<cstring>#include<vector>#include<math.h>#include<sstream>#include<set>#include<map>#include<iomanip>#include<algorithm>using namespace std;const double MIN=0.00001;struct point{ double x,y;};double dis(point a,point b){ return sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2));}point a,b,c,d;double p,q,r;double solve_ab(point m){ point left=a,right=b; point mid,midd; double ans1=2,ans2=1; while (fabs(ans1-ans2)>MIN) { mid.x=(left.x+right.x)/2; mid.y=(left.y+right.y)/2; midd.x=(mid.x+right.x)/2; midd.y=(mid.y+right.y)/2; ans1=dis(a,mid)/p+dis(mid,m)/r; ans2=dis(a,midd)/p+dis(midd,m)/r; if (ans1<ans2) right=midd; else left=mid; } return ans1;}double solve_abcd(){ point left=c,right=d; point mid,midd; double ans1=2,ans2=1; while (fabs(ans1-ans2)>MIN) { mid.x=(left.x+right.x)/2; mid.y=(left.y+right.y)/2; midd.x=(mid.x+right.x)/2; midd.y=(mid.y+right.y)/2; ans1=dis(d,mid)/q+solve_ab(mid); ans2=dis(d,midd)/q+solve_ab(midd); if (ans1<ans2) right=midd; else left=mid; } return ans1;}int main(){ cout<<fixed<<setprecision(2); int T; cin>>T; while (T--) { cin>>a.x>>a.y>>b.x>>b.y; cin>>c.x>>c.y>>d.x>>d.y; cin>>p>>q>>r; cout<<solve_abcd()<<endl; }}
- HDU 3400 Line belt 嵌套三分搜索
- hdoj 3400 Line belt (三分嵌套搜索 )
- hdu 3400 Line belt【三分嵌套】
- HDU 3400 Line belt(嵌套三分)
- HDU 3400 Line belt (三分搜索)
- Line belt+hdu+三分搜索
- HDU/HDOJ 3400 Line belt 三分嵌套 杭电月赛
- HDU 3400 Line belt 三分
- HDU 3400 Line belt 三分
- HDU 3400 Line belt(三分)
- hdu 3400 Line belt 三分
- HDU 3400 Line belt 三分
- Line belt 三分嵌套
- 三分套三分 --- HDU 3400 Line belt
- hdu 3400 Line belt 双三分
- hdu 3400 Line belt(三分)
- Line belt(hdu 3400,内嵌三分)
- hdu 3400Line belt 经典 三分
- 华为 路由策略
- 分布式环境下基于redis解决在线客服坐席动态分配的问题
- 2014年互联网IT公司产品、技术类人员工资待遇汇总 2015部分补充
- [hdu 3065] 病毒侵袭持续中 [AC自动机] [病毒特征码匹配]
- Java多线程研究05-ThreadPoolExecutor中workQueue、threadFactory和handle
- HDU 3400 Line belt 嵌套三分搜索
- Matlab导出高清图片的正确方法
- Android Volley完全解析
- 信号的处理——滤波电路
- 10 种机器学习算法的要点(转载)
- 海量数据取topk
- 二、进程管理
- 注册asp.net 4.0 到iis
- redis事务