第一次发BZOJ的题解,先从水题开始吧,好不容易找到一道水题,那就从这题开始吧。

1.题设部分{

题目描述:

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

Sample Input

0 0 0 100
100 0 100 100
2 2 1

Sample Output

136.60

[Submit]

}

2.题目分析{

  对于这道题,我的物理老师经常说,做物理题要结合图做,比如做力学的题目要做受力分析,做电学的题目要画电路图,这是一道运动学的题目,所以我们可以先把样例画出来,如下图:

管他对不对呢,反正大概就这样,将就着能用就行,显然,我们可以发现,答案必然是从AB上的某一个点出发,经过平面,到达CD上的另一点然后到达D。即答案可以表示为

|AF|/P+|FE|/R+|ED|/Q ,其中F∈AB,E∈CD

我们考虑将F点(你喜欢E点就E点)确定,那么剩下的问题就在于确定E点(若前面选择E点那就是确定F点,以后就统一E点算了)。那么怎么确定E点呢,生活常识告诉我们,在CD上肯定有一个最优的解,这个点两侧的解都越来越差,即函数图像大致为下面这样:

容易看出这是一个单峰函数,还是一个上凸的单峰函数,那么我们的问题就暂时变为了求这个单峰函数的极值。

下面介绍一种求单峰函数极值的方法:三分法,lrj的蓝书上有较为详细的记载。

三分法:

  对于任意一个上凸函数,选取函数上任意两个点A,B(xA<xB),若满足yA<yB,那么该函数的极值点必然在[xA,+∞)中,若满足yA>yB,那么该函数极值点必然在(-∞,xB]中,若满足yA=yB,那么该函数的极值点必然在[xA,xB]中。

  对于任意一个下凸函数,选取函数上任意两个点A,B(xA<xB),若满足yA<yB,那么该函数的极值点必然在(-∞,xB]中,若满足yA>yB,那么该函数极值点必然在[xA,+∞)中,若满足yA=yB,那么该函数的极值点必然在[xA,xB]中。

  证明很简单,有兴趣的人可以自己证明一下。

继续回到题目分析上来:

  有了三分法后,我们得到了解决了对于某个特定点F,如何求得最优的E点的方法,但是,问题中并没有给出F点在哪,那该怎么办?

  这时,我们可以思考这样一个问题:如果我们已知某个确定的点E,能够用三分法求出F吗,显然我们可以,那么我们就可以考虑用三分法的方法确定一个F,然后再通过这个F确定另一个E,即三分套三分,听起来很可行的样子,那么就写一下试试。

代码部分:

代码等下补,我先打会儿游戏。

}

BZOJ1857 传送带 (三分法求单峰函数极值)的更多相关文章

  1. AtCoder Beginner Contest 130 F Minimum Bounding Box 三分法求极值(WA)

    题意:给n个点的起始坐标以及他们的行走方向,每一单位时间每个点往它的方向移动一单位.问最小能包围所有点的矩形. 解法:看到题目求极值,想了想好像可以用三分法求极值,虽然我也不能证明面积是个单峰函数. ...

  2. hdu 5105 求函数极值 函数求导/三分法

    http://acm.hdu.edu.cn/showproblem.php?pid=5105 给定a,b,c,d,l,r,表示有一个函数f(x)=|a∗x3+b∗x2+c∗x+d|(L≤x≤R),求函 ...

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

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

  4. LA 5009 (三分法求极值) Error Curves

    给出的曲线要么是开口向上的抛物线要么是直线,但所定义的F(x)的图形一定是下凸的. 注意一点就是求得是极小值,而不是横坐标,样例也很容易误导人. #include <cstdio> #in ...

  5. [SCOI2010]传送带 三分法

    [SCOI2010]传送带 LG传送门 三分法模板. 关于为什么可以三分,我选择感性理解,有人证明了,总之我是懒得证了. 假设路径是\(A \to E \to F \to D\),\(E\)和\(F\ ...

  6. 伸展树splay之求区间极值

    前言 这篇博客是根据我在打这道题的时候遇到的问题,来打的,有些细节可能考虑不到. 题目 在N(1<=N<=100000)个数A1-An组成的序列上进行M(1<=M<=10000 ...

  7. ACM - ICPC World Finals 2013 B Hey, Better Bettor

    原题下载:http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 这题真心的麻烦……程序不长但是推导过程比较复杂,不太好想 ...

  8. OI总结(垃圾排版就忽略了吧)

    学OI一年了,到现在联赛所需要的知识已经基本学完了.现在,有必要回过头来,总结总结自己一年来学到的知识以及得到的经验教训. 基础 语言基础 C++的语言基础啥的就略了吧. 算法复杂度分析 O:复杂度的 ...

  9. 『2019/4/9 TGDay2模拟赛 反思与总结』

    2019/4/9 TGDay2模拟赛 今天是\(TG\)模拟赛的第二天了,试题难度也是相应地增加了一些,老师也说过,这就是提高组的难度了.刚开始学难的内容,一道正解也没想出来,不过基本的思路也都是对了 ...

随机推荐

  1. css 居中,中央

    在我的技巧里,有4中居中中央的方法: 1.position:absolute; top:50%;left:50%; margin : -x 0 0 -x; 这是绝对定位的方法,通过算法移动,坏处就是必 ...

  2. Docker存储驱动之Btrfs简介

    简介 Btrfs是下一代的copy-on-write文件系统,它支持很多高级特性,使其更加适合Docker.Btrfs合并在内核主线中,并且它的on-disk-format也逐渐稳定了.不过,它的很多 ...

  3. Linux tomcat设置ip地址直接访问,tomcat设置ip地址直接访问,tomcat绑定ip地址

    Linux tomcat设置ip地址直接访问,tomcat设置ip地址直接访问,tomcat绑定ip地址 >>>>>>>>>>>> ...

  4. android性能优化的一些东西

    说到android性能优化,总觉得是一个很模糊的东西,因为app的性能始终适合手机本身的性能挂钩的,也许一些消耗内容的操作,在一些移动设备可以运行,但是在另外一些上面就会出现内存溢出的问题,但是不管怎 ...

  5. ROJ 1166 超级贞鱼

    1166: 超级贞鱼 Time Limit: 1 Sec  Memory Limit: 128 MB [Submit][Status] 传送门 Description 马达加斯加贞鱼是一种神奇的双脚贞 ...

  6. v3学院带您一起学习FPGA

    本文为原创,转载请注明! 课程名称:双buffer乒乓操作项目概况:使用FPGA内部ram作为缓冲器,实现对外部数据流的缓存:为了提升数据的传输及处理速度,在此节课中将用到两个ram进行乒乓操作.结构 ...

  7. ThinkPhp知识大全(非常详细)

    php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...

  8. 技术分享,学术报告presentation 常用的承接句

    前言 现在即使是搞技术,做科研的,也需要在不同的场合,用ppt来做分享,做汇报,做总结. 如果国际会议,研讨会,或者在外企,国外工作,英文的presentation就更加必不可少.英语的提升需要大家从 ...

  9. Java面试04|Spring框架

    1.动态代理的几种方式 Java主要有两种代理,JDK和Cglib动态代理.先看JDK代理实例如下: JDK创建代理有一个限制,即它只能为接口创建代理实例.举个例子如下: public interfa ...

  10. 1755: [Usaco2005 qua]Bank Interest

    1755: [Usaco2005 qua]Bank Interest Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 187  Solved: 162[Su ...