`
jinvasshole
  • 浏览: 770181 次
文章分类
社区版块
存档分类
最新评论

hdu 3430 Line belt【三分嵌套】

 
阅读更多

二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以“大显身手”~~

类似于二分的定义Left和Right,mid = (Left + Right) / 2,midmid = (mid + Right) / 2; 如果mid靠近极值点,则Right = midmid;否则(即midmid靠近极值点),则Left = mid;


程序模版如下:

t=x/p+y/q+z/r

f(t)=x/p+y/q+z/r;

f(t)=x/p+g(y),g(y)=y/q+z/r;

则g(y)关于y为凸性函数,f(t)关于x,y为凸性函数(可能为递增函数),所以用两次三分,先在外层取mid,midmid,再每次以mid,midmid为m点对内层用三分求解最小时间g(y),完成外层的三分求解。

此外,这一题要的是对时间的精度,所以精度控制应该为fabs(t1-t2)<eps,而不是right-left<eps,否则可能出现right-left=1e-7,但对应fabs(t1-t2)=0.1的情况!



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics