传送带(三分套三分)

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

这个毒瘤题

原题链接

题目描述

在一个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;
}

萌新报道,欢迎指正~

目录
相关文章
|
8天前
三分~~~~
三分~~~~
14 0
|
8天前
|
算法
联想算法题-搬砖人
联想算法题-搬砖人
34 1
|
10月前
爱玩粥的有福了,带图形界面的明日方舟皮肤的员工管理系统,数据结构期末实训满分。
爱玩粥的有福了,带图形界面的明日方舟皮肤的员工管理系统,数据结构期末实训满分。
88 0
L2-028 秀恩爱分得快 (25 分)
L2-028 秀恩爱分得快 (25 分)
130 0
|
算法 搜索推荐
三大基础排序算法——我欲修仙(功法篇)
三大基础排序算法——我欲修仙(功法篇)
137 0
|
弹性计算 关系型数据库 Java
个人工作总结无代码-三分白
个人工作总结无代码-三分白
410 0
|
前端开发
个人工作总结前端-三分白
个人工作总结前端-三分白
81 0
|
SQL XML 弹性计算
个人工作总结后端-三分白
个人工作总结后端-三分白
105 0
|
机器学习/深度学习 测试技术
PAT乙级1001 害死人不偿命的(3n+1)猜想 (15分)
PAT乙级1001 害死人不偿命的(3n+1)猜想 (15分)
67 0
L2-029 特立独行的幸福 (25 分)
L2-029 特立独行的幸福 (25 分)
184 0

热门文章

最新文章

相关实验场景

更多