题目链接:戳我

分别枚举线段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. springboot -- 2.0版本自定义ReidsCacheManager的改变

    1. 问题发现 在1.0版本中,我们配置redis的cacheManager是这种方式: //缓存管理器 @Bean public CacheManager cacheManager(@Suppres ...

  2. [ZJOI2007]时态同步 题解

    题面 这道题是一道比较水的XXOI题: 我们可以发现,反着思考题目就变为了让所有叶子节点同时发出信号,然后这些信号同时到达根节点: 可以证明,这样答案不会改变: 那么我们可以自下而上dfs(),设f[ ...

  3. 细说vue axios登录请求拦截器

    当我们在做接口请求时,比如判断登录超时时候,通常是接口返回一个特定的错误码,那如果我们每个接口都去判断一个耗时耗力,这个时候我们可以用拦截器去进行统一的http请求拦截. 1.安装配置axios cn ...

  4. Yii2实现命名范围scope的自定义查询

    Yii中存在scope命名范围这个概念,Yii2里已经废弃了,在实际的项目开发情景中,我们有时需要用到命名范围这种自定义查询 使用场景: cate为栏目分类表,现在需要查询出栏目分类列表中所有的顶级分 ...

  5. wex5 如何导包

    wex5中 导jar包 要先把jar文件放在: E:\WeX5\runtime\BaasServer\WEB-INF\lib目录中(我wex5放的是E盘) 点击项目 --> 属性 --> ...

  6. RS chap1:好的推荐系统

    一.什么是推荐系统 1.个性化推荐系统:从庞大的电影库中找几部符合你兴趣的电影供你选择. 2.推荐系统是帮助用户快速发现有用信息的工具.和搜索引擎不同的是,推荐系统不需要用户提供明确的需求,而是通过分 ...

  7. 使用vue-cli脚手架快速构建项目

    1.创建一个文件夹,vscode打开 2.ctr + shift+` 打开指令窗口 3.npm i vue-cli -g   安装vue-cli 4.vue -V 测试安装版本 检查是否安装成功 5. ...

  8. iOS崩溃分析

    崩溃的分析 最近修复了一些iOS项目的崩溃,想分析总结一下这些崩溃的原因,以及预防.崩溃的原因一般有下面几种: 内存访问错误(这个出现的比较多,原因多种多样) 非法指令的执行(超出权限范围内的指令) ...

  9. awk 快速批量kill 进程

    ps -ef|grep aaa|grep -v grep|awk '{print "kill -9 " $2}' |sh

  10. windows设置通过NFS连接到Linux共享数据

    win7下增加了很多有用的功能,只是默认没有开启而已,今天简述下一个WIN7下的NFS功能,通过这个功能,可以让win7共享Linux下面的磁盘分区或者目录数据,这个功能原理只能通过samba或者ft ...