考研并不是说说就可以了,要付诸于行动。
对于Lele来说,最痛苦的事莫过于早起看书了,不过为了考研,也就豁出去了。由于早起看书会对看书效率产生影响,所以对于要什么时候起床看书,还是有必要考虑的。
经过周密的调查,Lele发现早起的时间会对上午和下午的看书效率都产生影响,具体如下:
他把早起的程度标记为一个非负有理数X,X数值越大,表示越早起。
1.对上午的影响F:符合 F = N / (X^2) 。其中N是一个参数。即越早起床,对上午的效率影响越少。
2.对下午的影响Y:一般越早起,对下午的效率影响越大。不过Y和X的关系比较复杂,并且在不同时候关系也是不同的,于是Lele把它绘制成为函数图形了。在某天,函数图形如下。

X轴的值表示早起的程度,Y轴的值表示对下午看书效率的影响。函数图像为折线上升的。
不过由于N值和Y-X的图像并不确定,所以Lele每次都要进行大量工作,来确保对整天的看书效率影响最小(F+Y的值最小),现在就请你帮帮他吧。
记住早起时间的取值X一定要在折线包含的范围之内。(对于上面这个图象,X一定要在[0,20]之内)。
【输入形式】
测试第一行包含两个整数M和N,其中M表示X-Y图像中顶点的数目。N含义见题目描述。
接下来有M行整数,分别表示这M个点在图像中的坐标Xi和Yi,Xi和Yi范围在[0,2^30]之内。
注意,第一个坐标一定为(0,0),并且X坐标和Y坐标是不降的。
而Lele早起的时间一定在[0,Xm-1]这个范围之内。
【输出形式】
对于每组数据,请在一行内输出可能取到的对全天效率(Y+F)影响的最小值。
结果保留两位小数
【样例输入】
3 1
0 0
10 10
20 30
【样例输出】
1.89

解题思路:
将题目所给m个点存放到数组x[m]和y[m]中
F = n/(x^2)
设Y是第i-1个点跟第i个点连线的方程(设k是这2点连线的斜率)
则:(根据题目:x和y是不降的)
Y = k * (x-x[i]) + y[i]
设总的函数 =为Z
则Z = Y + F = n/(x^2) + k * (x-x[i]) + y[i]
即:Z = n/(x^2) + k*x + (y[i]- k*x[i])
在这一段x[i-1]到x[i]上找到一个x使得Z最小
对于每一段来说,Z函数有可能是单调的,也有可能是先减后增的函数,可以用三分求极小值
分别求出m-1个段的极小值,然后进行比较求出Z函数的最小值

三分法:
二分查找 适用于单调函数中
三分查找 适用于凸性或凹形函数,求那个凸点或凹点。
下面的方法应该是三分查找的一个变形。

如图所示,已知左右端点L、R,要求找到极大值点的位置。
思路:通过不断缩小 [L,R] 的范围,无限逼近极大值点。
做法:取 [L,R] 的三分点mid和mmid,通过比较 f(mid) 与 f(mmid) 的大小来缩小答案的范围。
当最后R-L小于eps时,R或L就是我们要找的答案。
缩小范围方法:
1、当 f(mid) > f(mmid) 的时候,我们可以断定 mmid 一定在极大值的右边。
反证法:假设 mmid 在极大值的左边,因为mmid>mid,则 mid 也一定在极大值的左边,函数单调递增,又由 f(mid) > f(mmid) 可推出 mmid < mid,与已知矛盾,故假设不成立。
所以,mmid一定在极大值的右边,但是mid既可以在极大值左边也可以在极大值右边。此时可以将 R = mmid 来缩小范围。
2、当 f(mid) < f(mmid) 的时候,我们可以断定 mid 一定在极大值的左边。
反证法:假设 mid 在极大值的右边,mmid>mid,则 mmid 也一定在极大值的右边,又由 f(mid) < f(mmid) 可推出 mid > mmid,与已知矛盾,故假设不成立。 同理,此时可以将 L = mid 来缩小范围。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
#define eps 1e-8
#define inf 1e8 int m;
double n;
double x[10005],y[10005];double f(double x,double k)
{return x*k+n/(x*x);
}double solve(double l,double r,double k)
{while(r-l>eps){double midl=l+(r-l)/3;double midr=r-(r-l)/3;double zl=f(midl,k);double zr=f(midr,k);if(zl>zr)l=midl;else r=midr;}return r;
}int main()
{cin>>m>>n;for(int i=1;i<=m;i++)cin>>x[i]>>y[i];double ans=inf;for(int i=2;i<=m;i++){double k=(y[i]-y[i-1])/(x[i]-x[i-1]);double d=solve(x[i-1],x[i],k);double t=k*d+n/(d*d)-k*x[i]+y[i];ans=min(ans,t);} cout<<fixed<<setprecision(2)<<ans;return 0;
}

初学三分法之考研路茫茫——早起看书相关推荐

  1. 考研路茫茫——早起看书

    [问题描述] 考研并不是说说就可以了,要付诸于行动.对于Lele来说,最痛苦的事莫过于早起看书了,不过为了考研,也就豁出去了.由于早起看书会对看书效率产生影响,所以对于要什么时候起床看书,还是有必要考 ...

  2. 三分搜索--hdu2241 考研路茫茫——早起看书

    考研并不是说说就可以了,要付诸于行动. 对于Lele来说,最痛苦的事莫过于早起看书了,不过为了考研,也就豁出去了.由于早起看书会对看书效率产生影响,所以对于要什么时候起床看书,还是有必要考虑的. 经过 ...

  3. C++程序设计:考研路茫茫——早起看书

    [问题描述] 考研并不是说说就可以了,要付诸于行动. 对于Lele来说,最痛苦的事莫过于早起看书了,不过为了考研,也就豁出去了.由于早起看书会对看书效率产生影响,所以对于要什么时候起床看书,还是有必要 ...

  4. 考研路茫茫――单词情结 HDU - 2243(ac自动机 + 矩阵快速幂)

    考研路茫茫--单词情结 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  5. hdu 2243 考研路茫茫——单词情结(AC自动+矩阵)

    考研路茫茫--单词情结 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  6. hdu_2243_考研路茫茫——单词情结(AC自动机+矩阵)

    题目链接:hdu_2243_考研路茫茫--单词情结 题意: 让你求包含这些模式串并且长度不小于L的单词种类 题解: 这题是poj2788的升级版,没做过的强烈建议先做那题. 我们用poj2778的方法 ...

  7. HDU 2242 考研路茫茫——空调教室

    考研路茫茫--空调教室 Time Limit: 2000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID ...

  8. 【HDU No. 2243】单词情结 考研路茫茫——单词情结

    [HDU No. 2243]单词情结 考研路茫茫--单词情结 杭电OJ 题目地址 [题意] 单词和词根仅由小写字母组成.给定N个词根,求长度不超过L 且至少包含一个词根的单词可能有多少个? 若有两个词 ...

  9. HDU 2243考研路茫茫——单词情结 (AC自动机+矩阵快速幂)

    背单词,始终是复习英语的重要环节.在荒废了3年大学生涯后,Lele也终于要开始背单词了. 一天,Lele在某本单词书上看到了一个根据词根来背单词的方法.比如"ab",放在单词前一般 ...

最新文章

  1. struts2 iterator list中对象的list 双层迭代
  2. 【EventBus】事件通信框架 ( 总结 | 手写事件通信框架完整代码示例 | 测试上述框架 )
  3. 图像处理中ct图的通道是多少_常见医疗扫描图像处理步骤
  4. 2013年、2012、2011年中国软件业收入百强名录 看中国软件业这三年的变化
  5. 安装mysql8._安装MySQL8(附详细图文)
  6. SQL 2005 的存储过程和触发器调试大法
  7. ASP.NET MVC下使用AngularJs语言(一):Hello your name
  8. http://www.boobooke.com/bbs/thread-10284-1-1.html
  9. python中0x是什么意思_在python中,为什么0xbin()返回False?
  10. 《CSAPP》(第3版)答案(第十一章)
  11. 时间局部性和空间局部性
  12. ubuntu14.04扩展屏幕后,打开matlab就死机。求大神帮忙解决!!!万分感谢
  13. 省钱版----查找 IoT 设备TTL线序__未完待续
  14. t20171215a1BILL的账单
  15. Elasticsearch——基础(笔记)
  16. 打脸质疑者!Mobileye市值冲高,公司CEO说出心声
  17. 电赛知识补充——电机篇
  18. java 中几种常用数据结构
  19. 同源策略和跨域请求解决方案
  20. VBA一键给代码加注释(翻译表名、字段名)

热门文章

  1. c4d里.gil和.gi2是什么文件?怎么打开
  2. html组态插件_组态 web组态 插件 编辑器 使用说明书
  3. Rockchip RK3588 kernel dts解析之音频模块
  4. 三星s4流量显示无服务器,揭开隐藏功能的面纱 GALAXY S4使用指南
  5. 像素时代的黄昏和“淘宝叛军”
  6. Microsoft 文本转语音应用
  7. java 数字转大写_Java实现数字大写转换
  8. 【鸿蒙学院】鸿蒙(HarmonyOS)IDE迎来重大更新,新特性足以让你尖叫!
  9. 关于图片大小超过div盒子的讨论——补充
  10. SDKMAN 安装软件失败