传送带(三分套三分)

简介: 传送带(三分套三分)

这个毒瘤题

原题链接

题目描述

在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在lxhgww想从A点走到D点,他想知道最少需要走多长时间

输入

第一行是4个整数,表示A和B的坐标,分别为Ax,Ay,Bx,By

第二行是4个整数,表示C和D的坐标,分别为Cx,Cy,Dx,Dy

第三行是3个整数,分别是P,Q,R

输出

一行,表示lxhgww从A点走到D点的最短时间,保留到小数点后2位

样例输入 Copy

0 0 0 100

100 0 100 100

2 2 1

样例输出 Copy

136.60

提示

对于100%的数据,1<= Ax,Ay,Bx,By,Cx,Cy,Dx,Dy<=1000,1<=P,Q,R<=10


解题思路:

在线段AB和线段CD分别选一个点E,F。假设所需的最短时间的路径为:A->E->F->D。假设E点已经找到,然后线段CD上三分寻找F点的位置,使得E->F->D的时间最小。然后在线段AB上三分E点的位置,最后将两段的时间加起来就是最小的时间。

证明看这个

代码:

#include<bits/stdc++.h>
using namespace std;
double xa,ya,xb,yb,xc,yc,xd,yd,p,q,r;
double dis(double x1,double y1,double x2,double y2){
    //return fabs(x1-x2)+fabs(y1-y2);
    return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
double check(double x,double y){
    double xl=xc,yl=yc,xr=xd,yr=yd;
    while(fabs(xr-xl)>1e-8||fabs(yr-yl)>1e-8){
        double xmid1=xl+(xr-xl)/3,ymid1=yl+(yr-yl)/3;
        double xmid2=xr-(xr-xl)/3,ymid2=yr-(yr-yl)/3;
        double t1=dis(xa,ya,x,y)/p+dis(x,y,xmid1,ymid1)/r+dis(xmid1,ymid1,xd,yd)/q;
        double t2=dis(xa,ya,x,y)/p+dis(x,y,xmid2,ymid2)/r+dis(xmid2,ymid2,xd,yd)/q;
        if(t1<t2) xr=xmid2,yr=ymid2;
        else xl=xmid1,yl=ymid1;
    }
    return dis(xa,ya,x,y)/p+dis(x,y,xl,yl)/r+dis(xl,yl,xd,yd)/q;
}
int main(){
    cin>>xa>>ya>>xb>>yb>>xc>>yc>>xd>>yd>>p>>q>>r;
    double xl=xa,yl=ya,xr=xb,yr=yb;
    while(fabs(xr-xl)>1e-8||fabs(yr-yl)>1e-8){
        double xmid1=xl+(xr-xl)/3,ymid1=yl+(yr-yl)/3;
        double xmid2=xr-(xr-xl)/3,ymid2=yr-(yr-yl)/3;
        if(check(xmid1,ymid1)<check(xmid2,ymid2)) xr=xmid2,yr=ymid2;
        else xl=xmid1,yl=ymid1;
    }
    printf("%.2lf",check(xl,yl));
    return 0;
}

萌新报道,欢迎指正~

目录
相关文章
|
1月前
三分~~~~
三分~~~~
15 0
|
1月前
|
存储 C++
【C++练级之路】【Lv.16】红黑树(冰与火的碰撞,红与黑的史诗)
【C++练级之路】【Lv.16】红黑树(冰与火的碰撞,红与黑的史诗)
L2-028 秀恩爱分得快 (25 分)
L2-028 秀恩爱分得快 (25 分)
133 0
|
11月前
爱玩粥的有福了,带图形界面的明日方舟皮肤的员工管理系统,数据结构期末实训满分。
爱玩粥的有福了,带图形界面的明日方舟皮肤的员工管理系统,数据结构期末实训满分。
98 0
|
弹性计算 关系型数据库 Java
个人工作总结无代码-三分白
个人工作总结无代码-三分白
416 0
|
前端开发
个人工作总结前端-三分白
个人工作总结前端-三分白
82 0
|
SQL XML 弹性计算
个人工作总结后端-三分白
个人工作总结后端-三分白
108 0
L2-029 特立独行的幸福 (25 分)
L2-029 特立独行的幸福 (25 分)
189 0
团体程序设计天梯赛-练习集 - L2-028 秀恩爱分得快(25 分)
团体程序设计天梯赛-练习集 - L2-028 秀恩爱分得快(25 分)
238 0
|
程序员
日本戏精程序员:为自己搭建相亲网站,一人分饰三十角
日本戏精程序员:为自己搭建相亲网站,一人分饰三十角
194 0
日本戏精程序员:为自己搭建相亲网站,一人分饰三十角

热门文章

最新文章