题目链接:戳我

分别枚举线段AB上的出发点,和线段CD上的到达点,然后时间直接计算,取min就可以了。

但是这样子显然会T飞,(相当于1e5的平方吧?)所以我们进一步考虑性质。

然后打表(或者感性理解)可以发现分别选择点的时候,放进计算距离的式子里面其实是一个下凸的单峰函数(可以彼此独立打表,即随意固定一个出发点,打表达到点;或者随意固定一个达到点,打表出发点),然后我们就可以三分套三分了。(至于为什么可以分开打表看?主席说可以放到三维上面取理解,即在x坐标上是一个下凸的单峰函数,从y坐标看的时候压成了一个值,拓展出来三维的话还是下凸的(就像一个下陷的膜?))

感性理解的话就容易多了,画个图,把坐标从下往上移动的时候,靠下或者靠上的话都不优(因为或许会走冤枉路),所以就在中间取最优......好吧,我也解释不清楚了

不过。。。。还是不太清楚为什么直接上while会WA两个点QAQ

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define MAXN 100010
#define eps 1e-8
using namespace std;
double ax,ay,bx,by,cx,cy,dx,dy,p,q,r;
inline double dist(double x1,double y1,double x2,double y2)
{return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}
inline double calc(double x,double y)
{
double lx=cx,ly=cy,rx=dx,ry=dy;
double cur_ans=0.0;
do
{
double xx1=(rx-lx)/3+lx,yy1=(ry-ly)/3+ly;
double xx2=lx+rx-xx1,yy2=ly+ry-yy1;
double k1=dist(x,y,ax,ay)/p+dist(x,y,xx1,yy1)/r+dist(xx1,yy1,dx,dy)/q;
double k2=dist(x,y,ax,ay)/p+dist(x,y,xx2,yy2)/r+dist(xx2,yy2,dx,dy)/q;
if(k1>k2) cur_ans=k1,lx=xx1,ly=yy1;
else cur_ans=k2,rx=xx2,ry=yy2;
}while(fabs(rx-lx)>eps||fabs(ry-ly)>eps);
return cur_ans;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("ce.in","r",stdin);
#endif
scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&ax,&ay,&bx,&by,&cx,&cy,&dx,&dy);
scanf("%lf%lf%lf",&p,&q,&r);
double ans=0.0,lx=ax,ly=ay,rx=bx,ry=by;
do
{
double xx1=(rx-lx)/3+lx,yy1=(ry-ly)/3+ly;
double xx2=lx+rx-xx1,yy2=ly+ry-yy1;
double k1=calc(xx1,yy1),k2=calc(xx2,yy2);
if(k1>k2) lx=xx1,ly=yy1,ans=k1;
else rx=xx2,ry=yy2,ans=k2;
}while(fabs(rx-lx)>eps||fabs(ry-ly)>eps);
printf("%.2lf\n",ans);
return 0;
}

CQOI2010 传送带的更多相关文章

  1. 【BZOJ1857】[Scoi2010]传送带 三分法

    三分套三分,挺神奇的...每次找到,每个传送带的上下两个三等分点,下面那个小,则一定有更优的在中间. #include <iostream> #include <cstdio> ...

  2. 【读书笔记《Bootstrap 实战》】3.优化站点资源、完成响应式图片、让传送带支持手势

    A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap ...

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

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

  4. 12款响应式的 jQuery 旋转木马(传送带)插件

    在企业网站,作品集网站,电子商务网站或任何其他类型的网站内容显示图片可以使用 jQuery 旋转木马(传送带)插件来实现. jQuery 旋转木马插件允许开发人员以水平或垂直的方式显示内容,视频和图像 ...

  5. Slick – 这是你需要的最后一款 jQuery 传送带插件

    slick 是一款完全响应式的 jQuery 传送带插件,能够根据容器自动适应宽度.在现代浏览器中会使用 CSS3 来实现特殊效果,可以使用扩展方法对项目进行添加.删除和过滤.这是你需要的最后一款 j ...

  6. Owl Carousel – 支持触摸的 jQuery 响应式传送带插件

    Owl Carousel 是一个 jQuery 插件,使我们能够迅速地创建响应式传送带滑块.这个插件是触摸友好的,能与几乎任何的 HTML 内容兼容使用.另外,强大的选项设置支持分页/滑动速度,启用/ ...

  7. 【Bootstrap】3.优化站点资源、完成响应式图片、让传送带支持手势

    A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap ...

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

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

  9. Bzoj1818: [Cqoi2010]内部白点 && Tyvj P2637 内部白点 扫描线,树状数组,离散化

    1818: [Cqoi2010]内部白点 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 704  Solved: 344[Submit][Status] ...

随机推荐

  1. 20191209 【归档】Linux就该这么学

    学习背景 因为打算学习Redis和Docker,但是发现对Linux的操作已经完全忘记了,所以选择再学一次,但是不会深入的学习,选择了<Linux就该这么学>这本书,学完了感觉还挺好,但是 ...

  2. [转帖]数据库默认驱动、URL、端口

    超详细的各种数据库默认驱动.URL.端口总结 http://database.51cto.com/art/201906/598043.htm 学习了解一下.  概述 今天主要对各种数据库默认端口和UR ...

  3. SpringMVC-JSON数据交换

    在上Springmvc-JSON数据交换的时候,老师提出了两个问题: 1.JSON数据交互两个注解的作用? 2.静态资源访问的几种配置方式,并简述? 老师刚提出这两个问题的时候我一头雾水的.JSON数 ...

  4. HDU 1052 Tian Ji -- The Horse Racing (贪心)(转载有修改)

    Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  5. [转载]Jupyter Notebook中自动补全代码

    原文地址:https://yq.aliyun.com/articles/667928 在公众号之前的文章中,已经介绍了在Jupyter Notebook中设置主题以及输出代码文件到pdf文件中,本文来 ...

  6. 运维DNS原理配置

    Linux DNS原理简介及配置 DNS简介 DNS原理 域名解析的过程 资源记录 DNS BIND安装配置 一.简介 一般来讲域名比IP地址更加的有含义.也更容易记住,所以通常用户更习惯输入域名来访 ...

  7. drf三大认证解析

    目录 三大认证 认证模块: 权限模块 频率模块 RABC author组件 认证权限六表. Content_type 认证与权限工作原理+自定义认证类 自定义权限类 admin关联自定义用户表 前后台 ...

  8. 解析html,提取元素参数

    r = s.get(loginurl, verify=False) dom = etree.HTML(r.content.decode("utf-8")) try: result[ ...

  9. 使用CXF开发WebService程序的总结(五):基于Map数据类型处理的的客户端和服务端代码的编写

    1. 首先我们按照List或数组等处理方式来处理Map,看看效果 1.1 在服务端的接口中添加以下方法 /** * 查询所有班级信息加上对应的学生列表 * * @return */ public Ma ...

  10. Core Graphics绘图

    首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context ...