三分算法--Codeforces Round #320 (Div. 2) E. Weakness and Poorness
2015-09-25 11:04
381 查看
题目地址:点击打开链接
题目所求可以转化为减去x后的min(fabs(最大连续子序列和),fabs(最小连续子序列和)).
所求结果在区间上为单谷函数(先减后增),即可使用三分算法。
关键代码如下:
2.无论三分、二分,控制精确度的方法一种是左右边界逼近,另一种是控制循环次数。
有时,左右边界逼近会出现超时,或者精度不高导致WA。
题目所求可以转化为减去x后的min(fabs(最大连续子序列和),fabs(最小连续子序列和)).
所求结果在区间上为单谷函数(先减后增),即可使用三分算法。
关键代码如下:
<span style="white-space:pre"> </span>double l=-1e4,r=1e4,llr,lrr; int cnt=0; while(cnt<=100) { cnt++; llr=l+(r-l)/3; lrr=r-(r-l)/3; if(cal(llr)>=cal(lrr)) { l=llr; } else{ r=lrr; } } printf("%.15lf\n",cal(l));1. 不断缩小范围时,确保最低点在范围之内。
2.无论三分、二分,控制精确度的方法一种是左右边界逼近,另一种是控制循环次数。
有时,左右边界逼近会出现超时,或者精度不高导致WA。
相关文章推荐
- 三分求点到二次函数最小值
- 三分算法
- 5Turn the corner
- 6Line belt
- hdu 5142 物理三分算法
- Linux系统下Open vSwitch的基本使用方法
- SQLite时间戳与日期转换SQL语句
- JavaScript的 &&和||
- Package Control:There are no packages available for installation
- 第十五章 单点登录——《跟我学Shiro》
- mysql行列转换示例
- iOS AutoLayout 自动布局
- Zend API:深入 PHP 内核
- WPF学习日志1
- MySQLdb安装
- 从Java代码到字节码
- sql推断时间
- android.os.NetworkOnMainThreadException异常的处理
- SQLite时间戳与日期转换SQL语句
- --prefix= --with-gxx-include-dir (Installing GCC: Configuration)