//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. TCP/IP 端口大全

    1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat 用于列举连接了的端口的系统状态 13 ...

  2. tp配置+路由+基本操作

    一.打开apache 的配置文件httpd_conf添加以下代码 <VirtualHost *:80>DocumentRoot "D:\wwwroot\thinkphp\publ ...

  3. elipse快捷键大全 elipse快捷键详解

    1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xm ...

  4. mysql常见数据提示 mysql报错提示大全

    错误代码和消息 目录 B.1. 服务器错误代码和消息 B.2. 客户端错误代码和消息 本章列出了当你用任何主机语言调用MySQL时可能出现的错误.首先列出了服务器错误消息.其次列出了客户端程序消息. ...

  5. 基于Websocket+SpringMVC4推送部标Jt808终端报警(转)

    原文地址:http://www.jt808.com/?p=1263 在开发部标监控平台的时候,我们要及时的将部标终端报警推送到web界面上,以弹窗的形式提供给用户显示,要将报警显示在界面上,部标808 ...

  6. 亲热接触Redis-第一天

    引言 nosql,大规模分布式缓存遍天下.Internet的时代在中国由其走得前沿,这一切归功于我国特色的电商. 因此nosql.大数据技术在中国应用的比国外还要前沿. 从这一章開始我们将開始进入到真 ...

  7. $scope绑定事件之$on方法和$emit,$broadcast

    function DemoCtrl($scope){ $scope.count = 0; $scope.$on('myevent',function(){ $scope.count++; }) } 视 ...

  8. Java常量池解析与字符串intern简介

    在Java应用程序运行时,Java虚拟机会保存一份内部的运行时常量池,它区别于class文件的常量池,是class文件常量池映射到虚拟机中的数据结构. 关于class文件常量池的部分可以参考之前的博文 ...

  9. maven使用deploy发布到本地仓库

    使用maven可以方便的开发好的jar包发布到本地仓库中,方便其他项目依赖使用,在pom.xml文件中添加如下的配置: <distributionManagement> <repos ...

  10. PHP截取中文字符串不出现?号的解决方法[原创]

    PHP截取中文字符串不出现?号的解决方法[原创] 大 | 中 | 小 [不指定 -- : | by 张宴 ] [文章作者:张宴 本文版本:v1. 最后修改: 转载请注明出处:http://blog.z ...