//point(AB)->point(CD) 距离满足下凸性,用三分套三分实现
#include<cmath>
#include<cstdio>
#include<iostream>
#define pf(x) ((x)*(x))
using namespace std;
typedef double real;
const real eps=1e-;
real ax,ay,bx,by,cx,cy,dx,dy,P,Q,R,ans;
inline real dis(real x1,real y1,real x2,real y2){
return sqrt(pf(x1-x2)+pf(y1-y2));
}
inline real trichotomy2_(real x,real y){//CD无斜率
real l,r,lmid,rmid,t1,t2;
l=min(cy,dy);r=max(cy,dy);
while(l+eps<r){
lmid=(l*+r)/,rmid=(l+r*)/;
t1=dis(cx,lmid,x,y)/R+dis(cx,lmid,dx,dy)/Q;
t2=dis(cx,rmid,x,y)/R+dis(cx,rmid,dx,dy)/Q;
if(t1<t2) r=rmid;
else l=lmid;
}
t1=dis(cx,l,x,y)/R+dis(cx,l,dx,dy)/Q;
return t1;
}
inline real trichotomy2(real x,real y){//CD有斜率
if(cx==dx) return trichotomy2_(x,y);
real l,r,lmid,rmid,k,b,t1,t2;
l=min(cx,dx);r=max(cx,dx);
k=(cy-dy)/(cx-dx);
b=cy-k*cx;
while(l+eps<r){
lmid=(l*+r)/,rmid=(l+r*)/;
t1=dis(lmid,k*lmid+b,x,y)/R+dis(lmid,k*lmid+b,dx,dy)/Q;
t2=dis(rmid,k*rmid+b,x,y)/R+dis(rmid,k*rmid+b,dx,dy)/Q;
if(t1<t2) r=rmid;
else l=lmid;
}
t1=dis(l,k*l+b,x,y)/R+dis(l,k*l+b,dx,dy)/Q;
return t1;
}
inline real trichotomy1(){//AB有斜率
real l,r,lmid,rmid,k,b,t1,t2;
l=min(ax,bx);r=max(ax,bx);
k=(ay-by)/(ax-bx);
b=ay-k*ax;
while(l+eps<r){
lmid=(l*+r)/,rmid=(l+r*)/;
t1=trichotomy2(lmid,k*lmid+b)+dis(lmid,k*lmid+b,ax,ay)/P;
t2=trichotomy2(rmid,k*rmid+b)+dis(rmid,k*rmid+b,ax,ay)/P;
if(t1<t2) r=rmid;
else l=lmid;
}
t1=trichotomy2(l,k*l+b)+dis(l,k*l+b,ax,ay)/P;
ans=min(ans,t1);
}
inline real trichotomy1_(){//AB无斜率
real l,r,lmid,rmid,t1,t2;
l=min(ay,by);r=max(ay,by);
while(l+eps<r){
lmid=(l*+r)/,rmid=(l+r*)/;
t1=trichotomy2(ax,lmid)+dis(ax,lmid,ax,ay)/P;
t2=trichotomy2(ax,rmid)+dis(ax,rmid,ax,ay)/P;
if(t1<t2) r=rmid;
else l=lmid;
}
t1=trichotomy2(ax,l)+dis(ax,l,ax,ay)/P;
ans=min(ans,t1);
}
int main(){
cin>>ax>>ay>>bx>>by>>cx>>cy>>dx>>dy;
cin>>P>>Q>>R;
ans=dis(ax,ay,dx,dy);
if(ax!=bx) trichotomy1();
else trichotomy1_();
printf("%.2lf",ans);
return ;
}

[SCOI2010]传送带[三分]的更多相关文章

  1. bzoj 1857: [Scoi2010]传送带 三分

    题目链接 1857: [Scoi2010]传送带 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 934  Solved: 501[Submit][Stat ...

  2. 【BZOJ1857】[Scoi2010]传送带 三分套三分

    [BZOJ1857][Scoi2010]传送带 Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度 ...

  3. Bzoj 1857: [Scoi2010]传送带(三分套三分)

    1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MB Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段 ...

  4. 洛谷P2571 [SCOI2010]传送带 [三分]

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

  5. bzoj1857: [Scoi2010]传送带--三分套三分

    三分套三分模板 貌似只要是单峰函数就可以用三分求解 #include<stdio.h> #include<string.h> #include<algorithm> ...

  6. [BZOJ1857][SCOI2010]传送带-[三分]

    Description 传送门 Solution 三分套三分.代码简单但是证明苦兮兮.. 假如我们在AB上选了一个点G,求到该点到D的最小时间. 图中b与CD垂直.设目前从G到D所耗时间最短的路径为G ...

  7. SCOI2010 传送带 [三分/模拟退火]

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

  8. P2571 [SCOI2010]传送带

    P2571 [SCOI2010]传送带 三分套三分. 前提条件:P3382 [模板]三分法 三分,求区间内单峰函数的最大/最小值. 我们把两条线段都跑三分,先ab后cd,求出最小值. 可以直接将二维坐 ...

  9. BZOJ 1857: [Scoi2010]传送带

    二次联通门 : BZOJ 1857: [Scoi2010]传送带 /* BZOJ 1857: [Scoi2010]传送带 三分套三分 可能是吧..dalao们都说明显是一个单峰函数 可是我证不出来.. ...

随机推荐

  1. vector 类简介和例程

    一.标准库的vector类型 vector是同一种类型的对象的集合 vector的数据结构很像数组,能非常高效和方便地访问单个元素 vector是一个类模板(class template) vecto ...

  2. js获取当前域名的方法

    一.获取当前域名 1.方法一 var domain = document.domain; 2.方法二 var domain = window.location.host; 但是获取到的domain在线 ...

  3. 温故而知新 $ jquery选择器居然隐藏第二个参数,更进一步限制选择的区域

    $ 选择器的第二个参数 $("[name=" + name + "]", layero); layero 其实也是一个dom对象,譬如一个表单,一个table. ...

  4. selenium 实现浏览器 前进和后退

    #coding=utf-8from selenium import webdriver driver = webdriver.Chrome()driver.get("https://www. ...

  5. Spring Cloud(一):概述以及核心成员介绍

    什么是Spring Cloud? Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全 ...

  6. char类型到底是有符号还是无符号

    根据c标准,char类型到底是有符号整数类型还是无符号整数类型,这取决于c实现,也就是c编译器的作者的想法:( 那么,如何快速的编写一个检测程序,查看当前编译器如何对char进行定义? #includ ...

  7. 动态更新highcharts数据

    <!doctype html> <html> <head> <script type="text/javascript" src=&quo ...

  8. 一款基于jQuery的联动Select下拉框

    今天我们要来分享一款很实用的jQuery插件,它是一个基于jQuery多级联动的省市地区Select下拉框,并且值得一提的是,这款联动下拉框是经过自定义美化过的,外观比浏览器自带的要漂亮许多.另外,这 ...

  9. QListView和QListWidget的区别

    QListView是基于Model,而QListWidget是基于Item.这是它们的本质区别. 往QListView中添加条目需借助QAbstractListModel: 如: MainWindow ...

  10. UCOS2系统内核讲述(五)_初始化TCB详情

    Ⅰ.写在前面 学习本文之前可以参看我前面的文章: UCOS2系统内核讲述(四)_创建任务 上一篇文章讲述了关于函数“OSTaskCreateExt”创建任务函数体里面重要一些的内容,本文接着上一张讲述 ...