【题目描述】

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

【题目链接】

    https://loj.ac/problem/10017

【算法】

    猜想两条线段的最优点均满足单峰性质,于是三分套三分,代码借鉴黄学长。(http://hzwer.com/4255.html)

【代码】

    

 #include <bits/stdc++.h>
#define eps 1e-4
using namespace std;
int ax,ay,bx,by;
int cx,cy,dx,dy;
int p,q,r;
inline int read() {
int x=,f=; char c=getchar();
while(c<''||c>''){if(c=='-') f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
double dis(double x1,double y1,double x2,double y2) {
return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
double cal(double x,double y) {
double lx=cx,ly=cy,rx=dx,ry=dy;
double lmx,lmy,rmx,rmy,t1,t2;
while(fabs(lx-rx)>eps||fabs(ly-ry)>eps) {
lmx=lx+(rx-lx)/,lmy=ly+(ry-ly)/;
rmx=lx+(rx-lx)/*,rmy=ly+(ry-ly)/*;
t1=dis(x,y,lmx,lmy)/r+dis(lmx,lmy,dx,dy)/q;
t2=dis(x,y,rmx,rmy)/r+dis(rmx,rmy,dx,dy)/q;
if(t1>t2) lx=lmx,ly=lmy;
else rx=rmx,ry=rmy;
}
return dis(ax,ay,x,y)/p+dis(x,y,lmx,lmy)/r+dis(lmx,lmy,dx,dy)/q;
}
int main() {
ax=read(),ay=read(),bx=read(),by=read();
cx=read(),cy=read(),dx=read(),dy=read();
p=read(),q=read(),r=read();
double lx=ax,ly=ay,rx=bx,ry=by;
double lmx,lmy,rmx,rmy,t1,t2;
while(fabs(lx-rx)>eps||fabs(ly-ry)>eps) {
lmx=lx+(rx-lx)/,lmy=ly+(ry-ly)/;
rmx=lx+(rx-lx)/*,rmy=ly+(ry-ly)/*;
t1=cal(lmx,lmy),t2=cal(rmx,rmy);
if(t1>t2) lx=lmx,ly=lmy;
else rx=rmx,ry=rmy;
}
printf("%.2f\n",cal(lx,ly));
return ;
}

#10017 传送带(SCOI 2010)(三分套三分)的更多相关文章

  1. BZOJ 1857 传送带 (三分套三分)

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

  2. 【BZOJ-1857】传送带 三分套三分

    1857: [Scoi2010]传送带 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 1077  Solved: 575[Submit][Status][ ...

  3. 2018.06.30 BZOJ1857: [Scoi2010]传送带(三分套三分)

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

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

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

  5. 【BZOJ1857】传送带(分治经典:三分套三分)

    点此看题面 大致题意: 一个二维平面上有两条传送带\(AB\)和\(CD\),\(AB\)传送带的移动速度为\(P\),\(CD\)传送带的移动速度为\(Q\),步行速度为\(R\),问你从\(A\) ...

  6. loj10017. 「一本通 1.2 练习 4」传送带(三分套三分)

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

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

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

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

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

  9. [luogu2571][bzoj1857][SCOI2010]传送门【三分套三分】

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

随机推荐

  1. os模块、sys模块、json模块、pickle模块、logging模块

    目录 os模块 sys模块 json模块 pickle模块 logging模块 os模块 功能:与操作系统交互,可以操作文件 一.对文件操作 判断是否为文件 os.path.isfile(r'路径') ...

  2. 打包组件assembly之package.xml

    形如: <assembly> <id>deploy</id> <formats> <format>zip</format> &l ...

  3. git clone项目失败,Host key verification failed.

    在码云上创建了一个项目,配置好公钥后,克隆到我本地出现以下失败 百度了好久也没有找到解决办法,困扰了好久,后来还是百度到了, 原来是在提示 ey fingerprint is SHA256:FQGC9 ...

  4. 【微信小程序】setData的使用以及注意事项

    Page.prototype.setData(Object data, Function callback) setData 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.da ...

  5. python-globals()、locals()的使用

    globals() 函数返回一个全局变量的字典,包括所有导入的变量locals() 函数返回一个当前位置的所有局部变量的字典print(globals())print(locals()) global ...

  6. 微信小程序支付功能讲解

    前言:虽然小程序做过很多,但是一直觉得微信支付功能很是神秘,现在终于有机会接触心里还是有点小激动的,经过一番折腾发现支付也不过如此,在此记录下支付功能的实现过程 小程序的官方文档介绍到发起微信支付即调 ...

  7. 【BZOJ1521】Est(单调队列优化DP)

    题意:From https://www.cnblogs.com/CXCXCXC/p/4725249.html 思路:本身就两维状态了,把问题关键s[i][j]写成二维比一维好写多了 #include& ...

  8. Android and HTML5 开发手机应用(转载)

    作为一个WEB开发者,HTML5让我兴奋,因为它可以将桌面应用程序功能带入浏览器中.但在国内,看着到处横行的IE8版本以下的浏览器,觉得到能大规模使用HTML5技术的那天,还遥遥无期.但面对iOS及A ...

  9. (17)Python读取摄像头并实现视频播放、暂停、指定目录保存、回放功能

    读取摄像头并播放.暂停功能 import sys #import scipy.io as sio from PyQt5 import QtGui, QtCore, QtWidgets #from wy ...

  10. [CSP-S模拟测试]:星际旅行(欧拉路)

    题目传送门(内部题4) 输入格式 第一行两个整数$n,m$,表示行星和虫洞的数量.接下来$m$行,每行两个整数$u,v$,表示存在一个双向虫洞直接连接$u$和$v$.每一个虫洞最多会被描述一次. 输出 ...