题目描述

在一个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位

输入输出样例

输入样例#1:

0 0 0 100

100 0 100 100

2 2 1

输出样例#1:

136.60

说明

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

三分肯定是三分的,不过这道题目是三分套三分。

重点就是要找到两个点,从a到x,从x到y,再从y到d。

我们可以先确定一个点,然后三分枚举另一个点,把当前算出的答案作为三分的返回值,然后进行计算。

#include <bits/stdc++.h>
#define int long long
using namespace std;
const double eps=1e-8;
double ax,ay,bx,by,cx,cy,dx,dy,v1,v2,v3;
double dis(double a1,double b1,double a2,double b2) {
double cha1=a2-a1,cha2=b2-b1;
return sqrt(cha1*cha1+cha2*cha2);
}
double tot(double a1,double b1,double a2,double b2) {
return dis(a1,b1,a2,b2)/v3+dis(a2,b2,dx,dy)/v2;
}
double san1(double x,double y) {//确定上面的端点以后的二分
double lx=cx,ly=cy,rx=dx,ry=dy;
while(dis(lx,ly,rx,ry)>eps) {
double nowx=(rx-lx)/3,nowy=(ry-ly)/3;
double lmidx=lx+nowx,rmidx=rx-nowx,lmidy=ly+nowy,rmidy=ry-nowy;
double ans1=tot(x,y,lmidx,lmidy),ans2=tot(x,y,rmidx,rmidy);
if(ans2-ans1>eps) rx=rmidx,ry=rmidy;
else lx=lmidx,ly=lmidy;
}
return tot(x,y,lx,ly);
}
double san2() {
double lx=ax,ly=ay,rx=bx,ry=by;
while(dis(lx,ly,rx,ry)>eps) {
double nowx=(rx-lx)/3,nowy=(ry-ly)/3;
double lmidx=lx+nowx,rmidx=rx-nowx,lmidy=ly+nowy,rmidy=ry-nowy;
double ans1=san1(lmidx,lmidy)+dis(ax,ay,lmidx,lmidy)/v1,ans2=san1(rmidx,rmidy)+dis(ax,ay,rmidx,rmidy)/v1;
if(ans2-ans1>eps) rx=rmidx,ry=rmidy;
else lx=lmidx,ly=lmidy;
}
return san1(lx,ly)+dis(ax,ay,lx,ly)/v1;
}
signed main() {
cin>>ax>>ay>>bx>>by>>cx>>cy>>dx>>dy>>v1>>v2>>v3;
printf("%.2lf",san2());
return 0;
}

loj10017. 「一本通 1.2 练习 4」传送带(三分套三分)的更多相关文章

  1. 「LOJ#10051」「一本通 2.3 例 3」Nikitosh 和异或(Trie

    题目描述 原题来自:CODECHEF September Challenge 2015 REBXOR 1​​≤r​1​​<l​2​​≤r​2​​≤N,x⨁yx\bigoplus yx⨁y 表示 ...

  2. LOJ#10117. 「一本通 4.1 练习 2」简单题

    LOJ#10117. 「一本通 4.1 练习 2」简单题 题目描述 题目来源:$CQOI 2006$ 有一个$n$个元素的数组,每个元素初始均为$0$.有$m$条指令,要么让其中一段连续序列数字反转— ...

  3. LOJ#10064. 「一本通 3.1 例 1」黑暗城堡

    LOJ#10064. 「一本通 3.1 例 1」黑暗城堡 题目描述 你知道黑暗城堡有$N$个房间,$M$条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设$D_i$为如果 ...

  4. 「LOJ#10056」「一本通 2.3 练习 5」The XOR-longest Path (Trie

    #10056. 「一本通 2.3 练习 5」The XOR-longest Path 题目描述 原题来自:POJ 3764 给定一棵 nnn 个点的带权树,求树上最长的异或和路径. 输入格式 第一行一 ...

  5. 「LOJ#10042」「一本通 2.1 练习 8」收集雪花 (map

    题目描述 不同的雪花往往有不同的形状.在北方的同学想将雪花收集起来,作为礼物送给在南方的同学们.一共有 n 个时刻,给出每个时刻下落雪花的形状,用不同的整数表示不同的形状.在收集的过程中,同学们不希望 ...

  6. 「LOJ#10043」「一本通 2.2 例 1」剪花布条 (KMP

    题目描述 原题来自:HDU 2087 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案.对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? 输入格式 输入数据 ...

  7. 「LOJ#10015」「一本通 1.2 练习 2」扩散(并查集

    题目描述 一个点每过一个单位时间就会向 444 个方向扩散一个距离,如图所示:两个点 a .b 连通,记作 e(a,b),当且仅当 a .b的扩散区域有公共部分.连通块的定义是块内的任意两个点 u.v ...

  8. LOJ #10131 「一本通 4.4 例 2」暗的连锁

    LOJ #10131 「一本通 4.4 例 2」暗的连锁 给一棵 \(n\) 个点的树加上 \(m\) 条非树边 , 现在需要断开一条树边和一条非树边使得图不连通 , 求方案数 . $n \le 10 ...

  9. #10042. 「一本通 2.1 练习 8」收集雪花 || 离散化 || 双指针法 || C++ || LOJ

    题目:#10042. 「一本通 2.1 练习 8」收集雪花 看到网上没有这道题的题解,所以写一下. 要标记数字是否存在,看到x<=1e9,所以考虑用离散化,然后开一个last数组,last[i] ...

随机推荐

  1. JavaScript如何实现日期的前一天后一天转变

    1.生成时间 var data =new Date(); 2.获得时间戳     什么是时间戳? 时间戳是指格林威治时间自1970年1月1日(00:00:00 GTM)至当前时间的总秒数.它也被称为U ...

  2. odoo @api.constrains _sql_constrains

    实现机制: @api.constrains('fields') 服务器启动时将模型中的所有约束方法注册到对象池中: 在create.write时会根据创建或修改的fields检查是否有对应的约束方法, ...

  3. 测试效率加倍提升!shell 高阶命令快来 get 下!

    背景 目前大部分的项目都是部署在Linux系统上,作为测试,掌握常用Linux命令是必须的技能.很多的工作了好几年的测试人员可能还只会简单的ls.cd.cat等等这些命令,这些命令是可以应付工作的大部 ...

  4. SQL语句替换某个字段的部分数据

    update `表名` set `字段`= replace(字段, '旧数据', '新数据');

  5. Flink 源码解析 —— 如何获取 StreamGraph?

    StreamGraph https://t.zsxq.com/qRFIm6I 博客 1.Flink 从0到1学习 -- Apache Flink 介绍 2.Flink 从0到1学习 -- Mac 上搭 ...

  6. selenium又一小坑 无法用XPATH直接获取属性值 需要使用.get_attribute(“href”)

    在使用selenium进行抓取url的时候,试图使用find_elements_by_xpath来获取. 因此想当然的直接使用XPATH的语法进行获取属性 事例缩略后xml结构如下 <div c ...

  7. QT之类型转换

    Qt在进行数据类型转换时,容易忘记如何使用,或者是早已厌倦了百度QString转QByteArray,QByteArray转char,QString转string....... 现在分享一篇QT数据类 ...

  8. http://www.cnblogs.com/xdp-gacl/p/4200090.html

    孤傲苍狼 只为成功找方法,不为失败找借口! JavaWeb学习总结(五十)——文件上传和下载 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功 ...

  9. winform实现Session功能(保存用户信息)

    问题描述:在winform中想实现像BS中类似Session的功能,放上需要的信息,在程序中都可以访问到. 解决方案:由于自己很长时间没有做过winform的程序,一时间竟然手足无措起来.后来发现wi ...

  10. 二.HTML

    1.HTML 1. <head></head>标签 <!DOCTYPE html> <!--统一规范--> <!----> <html ...