1857: [Scoi2010]传送带
Time Limit: 1 Sec Memory Limit: 64 MB
Description
在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。现在lxhgww想从A点走到D点,他想知道最少需要走多长时间
Input
输入数据第一行是4个整数,表示A和B的坐标,分别为Ax,Ay,Bx,By 第二行是4个整数,表示C和D的坐标,分别为Cx,Cy,Dx,Dy 第三行是3个整数,分别是P,Q,R
Output
输出数据为一行,表示lxhgww从A点走到D点的最短时间,保留到小数点后2位
Sample Input
0 0 0 100
100 0 100 100
2 2 1
sample Output
136.60
HINT
对于100%的数据,1<= Ax,Ay,Bx,By,Cx,Cy,Dx,Dy<=1000
1<=P,Q,R<=10
Source
Day2

这题要求最值,显然先让人想到二分,然而这道题要枚举两个断点,怎么处理呢?

还是先把问题简化:如果某个断点是已经固定下来了的,那么另外的那两段长度显然是一个单峰函数,直接套三分即可。

那么有两个断点怎么办?先三分一个断点,然后每次再三分一次求极值,也就是三分套三分。

代码如下:

#include<bits/stdc++.h>
#define eps 1e-5
using namespace std;
double ax,ay,bx,by,cx,cy,dx,dy,p,q,r;
inline double dis(double x1,double y1,double x2,double y2){return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}
inline double cnt(double x1,double y1,double x2,double y2){return dis(ax,ay,x1,y1)/p+dis(x1,y1,x2,y2)/r+dis(x2,y2,dx,dy)/q;}
inline double sol(double x,double y){double lx=cx,ly=cy,rx=dx,ry=dy;while(fabs(lx-rx)>=eps||fabs(ly-ry)>=eps){double x1=lx+(rx-lx)/3,x2=rx-(rx-lx)/3,y1=ly+(ry-ly)/3,y2=ry-(ry-ly)/3;double ans1=cnt(x,y,x1,y1),ans2=cnt(x,y,x2,y2);if(ans1>ans2)lx=x1,ly=y1;else rx=x2,ry=y2;}return cnt(x,y,lx,ly);
}
int main(){cin>>ax>>ay>>bx>>by>>cx>>cy>>dx>>dy>>p>>q>>r;double lx=ax,ly=ay,rx=bx,ry=by;while(fabs(lx-rx)>=eps||fabs(ly-ry)>=eps){double x1=lx+(rx-lx)/3,x2=rx-(rx-lx)/3,y1=ly+(ry-ly)/3,y2=ry-(ry-ly)/3;double ans1=sol(x1,y1),ans2=sol(x2,y2);if(ans1>ans2)lx=x1,ly=y1;else rx=x2,ry=y2;}printf("%.2lf",sol(lx,ly));return 0;
}

转载于:https://www.cnblogs.com/ldxcaicai/p/9738528.html

2018.06.30 BZOJ1857: [Scoi2010]传送带(三分套三分)相关推荐

  1. BZOJ1857 Scoi2010 传送带 【三分】

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

  2. bzoj1857 [Scoi2010]传送带

    1857: [Scoi2010]传送带 Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 1635  Solved: 909 [Submit][Status ...

  3. #10017 「一本通 1.2 练习 4」传送带+三分套三分

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

  4. 三分的多种写法及对应的精度 三分套三分原理

    https://www.luogu.org/problemnew/show/P3382 正规三分法 study from: https://blog.csdn.net/pi9nc/article/de ...

  5. 上海理工大学第二届“联想杯”全国程序设计邀请赛 - Experiment Class(几何+三分套三分)

    题目链接:点击查看 题目大意:在二维平面的第一象限中给出两条射线代表河流,再给出起点和终点,问从起点出发,至少经过两条河各一次后到达终点的最短路 题目分析:如果只有一条河的话就是初中数学的经典问题了, ...

  6. HDU - 3694 Fermat Point in Quadrangle(三分套三分/凸包)

    题目链接:点击查看 题目大意:给出四个点,求出该四边形的费马点,费马点是求得一个点,到这四个点的距离最小,最后输出距离, 题目分析:三分套三分,外层三分x,内层三分y即可,不过就是目前来说遇到的所有三 ...

  7. HDU - 5017 Ellipsoid(三分套三分/模拟退火)

    题目链接:点击查看 题目大意:给出一个椭球面的方程,求椭球面上的点与原点距离的最小值 题目分析:因为涉及到了求最小值,我们可以考虑三分,又因为每一个点都是三维的(x,y,z),不过z可以通过x和y的计 ...

  8. [BZOJ1857][Scoi2010]传送带

    1857: [Scoi2010]传送带 Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 1786  Solved: 981 [Submit][Status ...

  9. 传送带(三分套三分)

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

  10. BZOJ1857:[SCOI2010]传送带——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1857 Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送 ...

最新文章

  1. ValueError: not enough values to unpack (expected 3, got 0)问题
  2. 常用的异常检测算法有哪些?
  3. Java 多线程:InheritableThreadLocal 实现原理
  4. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)
  5. String,StringBuffer,StringBuilder区别
  6. LeetCode-Add Two Numbers
  7. iOS微博项目(一)
  8. python的装饰器、迭代器、yield_python装饰器,迭代器,生成器,协程
  9. verilog 学习记(如何编写assert)
  10. 从零开始学 Web 之 jQuery(二)获取和操作元素的属性
  11. java二级 计算复杂利息_java 计算存款利息
  12. Python实现最小二乘法曲线拟合
  13. 生活技巧:过日子学着点
  14. 怎么在html的表格中加筛选,excel中表头合并单元格的筛选
  15. C语言之strcat函数
  16. 喝可乐问题,2个空瓶换一瓶可乐
  17. 学习笔记(34):MATLAB基础入门课程-乘方
  18. TypeError: can‘t convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to
  19. Android手机通讯录备份和恢复项目
  20. unity怪物的状态机

热门文章

  1. 【CentOS 7笔记26】,打包和压缩工具的使用#171108
  2. Jenkins系列二:SVN+Maven+Tomcat自动构建和部署
  3. Python基础二--基本控制语句
  4. mysql federated engine
  5. Vue如何通过代理解决跨域问题
  6. 重磅!苹果正式开源iOS内核源码!
  7. 支付宝系统架构(内部架构图)
  8. Win 7退役,这些Linux发行版可以替代
  9. 来,说说什么是运维人的情怀?
  10. Unix 目录结构是怎么由来的?