三分法求解单峰谷函数最值的一些应用紊莫

回想一下我们在二分的时候二分的那个函数是什么?是一个单调的函数,只会上升或者下降,假如我们要在一个二次函数中求极值,那么二分不再适用(不考虑求导后二分),我们需要三分法来解决这样的问题。

这一部分一般都比较好理解,边界问题也较少。

【模版】P3382 三分:不考虑求导后二分。

以这个函数为例:

所谓三分,也就是找出三等分点,然后比较优劣,选取最值即可。

我们发现 $Rmid$ 离极值更近,所以选取右边作为答案,如此往复。

这样写,每次会把答案区间减少 $\dfrac{1}{3}$。这里给出另一种效率较高的写法:

这样相当于把三分的范围缩得很小,效率接近二分。但是,这种方法有一个缺陷,考虑 $eps$ 过小的时候因为精度有限,$f(mid-eps)=f(mid+eps)$ 此时可能会导致我们去向错误的分支!而且平时没人卡三分的效率,因为它已经很快了。

当然,你也可以做做 P1883 【模板】三分 | 函数 这题,巩固一下模版。

注意到在这两题中都明确指出了答案是一个单峰或单谷函数,但是实际问题可能没有这么简单。

【例题 1】P2571 [SCOI2010] 传送带:

这题有两个线段,先来想想假设一条线段已知的情况下怎么做。

假设我们已经到达了 $AB$ 上的点 $P$ 那么考虑下一步接到 $CD$ 上的哪一个点可以最佳,假设两条线段平行,那么显然垂直最短,实际上这题也满足,也就是说明我们可以知道在确定一个线段的时候,可以对另一个来三分。

那么第一维怎么处理呢?实际上这也满足三分的性质,于是我们可以三分套三分。

代码非常简短。

很多时候,我们的重心都是解决一些序列问题,而这些序列往往不是小数,当其满足单调性的时候我们可以二分,而满足单峰或单谷的时候我们就可以三分答案,而正数的三分也意味着更多的细节。

CF1355E Restorer Distance:

首先,对于一切三分题,首要的是意识到能三分来做,也就是意识到题目的答案函数是单峰或单谷的函数。

对于这题,我们显然可以意识到假如我把砖垒的很高,那么代价显然很大,假如只剩下一点点,那么拿走砖的代价也很大,答案肯定是中间的某个数,于是考虑三分。

那么三分什么呢?显然不能无脑三分最后的代价值,不是不好计算,而是这个函数根本不满足上述要求。我们考虑 $\text{cost}(h)$ 表示当把墙的高度定为 $h$ 时的花费,这个显然符合我们的推理,最后计算答案即可。

区别于实数的三分,我们可以采用如第四行的写法,因为差值几乎是一定会造成答案的差异的,注意我说的是几乎。

最后我们输出的时候不能直接 calc(ans),你考虑到我们在第二行写的判断语句是什么意思?就是说数字个数大于等于 $3$ 个我才三分,是不是意味着退出循环时,我们可能剩下 $x,x+1$ 两个数字?那么我们还需要分别计算这两个的值才能得到最终答案。

【经验】P3745 [六省联考 2017] 期末考试 :

为什么只写这么一点呢?因为笔者太菜,做的题太少,下次遇到好题了可以补充。

THE END
0.三分法二分法尺取法前缀和差分二分法三分法三分法、二分法、尺取法、前缀和、差分 一、二分法 二分法是一种常用的查找算法,它基于有序列表的前提,将列表一分为二,确定目标值位于哪个子列表中,然后继续对该子列表进行二分查找,直到找到目标值或确定目标值不存在。 实现二分法的基本思路是: 确定有序列表的起始和结束位置;jvzquC41dnuh0lxfp0tfv8|gkzooa?7995:538ftvkimg8igvcomu864;6?84A6
1.二分与三分法详解本文详细介绍了二分法和三分法的原理及应用。针对求解最小值的最大化或最大值的最小化问题,阐述了二分法的实现细节,并通过示例展示了如何在给定条件下找到最优解。此外,还探讨了函数值先增后减或先减后增的情况,即使用三分法求解极值的方法。 二分法 jvzquC41dnuh0lxfp0tfv8z234:7;B=91cxuklqg1fkucrqu1769;@7;3
2.基本算法—d.三分法(TernarySearch)三分法(Ternary Method)(数学应用、决策应用、社会应用、三分类) 三分法(Ternary Method),在不同的领域有不同的应用,主要指的是在某些情况下将问题或过程分成三部分进行处理。这里,我将从几个常见的角度介绍三分法,包括数学、算法和决策中的应用。 jvzquC41dnuh0lxfp0tfv8vsa9826:6951gsvrhng1jfvjnnu1758>:4;8;
3.浅谈三分法SeawayFu尤其是二分答案,把求解转化为判定。 二、三分法的概念 刚刚已经提到过,二分答案是把求解转化成判定,但是其有一个很重要的适用范围:答案一定要满足单调性。这很显然。 但是如果答案函数就不是一个单调函数,而是一个类似于二次函数的波峰、波谷函数的话,怎么办呢?显然,二分是无勇武之地的。 那就三分呗。 是的,三分jvzquC41yy}/ewgnqiy/exr1hwyjynn1r1752:>;8:4ivvq
4.三分法爆零王举一反三,二分法是将区间一分为二,那么三分法就是将区间一分为三。 那么有了二分,为什么还要有三分呢? 原因是:二分算法解决的是单调函数求极值的问题,而三分算法解决的是单峰函数求极值的问题。 具体来讲,二分法可以解决一次函数的极值,而二次函数就要交给三分法解决了。 jvzquC41yy}/ewgnqiy/exr1|jgoiƒmk{wgo3;81r1762:<3984ivvq
5.三分法原理与应用二分与三分类似。 二分法利用的是函数的单调性。而三分法利用的是函数的单峰性。二次函数就是一个典型的单峰函数。三分法与二分法一样,它会不断缩小答案所在的求解区间,直到求出极值。 如图: 算法流程: 1、设当前求解的区间为 [l,r],令 m1=l+(r-l)/3,m2=r-(r-l)/3; jvzquC41dnuh0lxfp0tfv8vkcpmveq4ctvodnn4fgvgjn|49:2957=>
6.三分法求解最值问题【算法和数据结构】三分法 1. 三分解决的问题 开门见山的说,三分法就是解决最值问题的方法。所以它能解决以下的问题 (两种说法等价): 在定义域上,函数的导函数是单调的。 函数是单峰的。 原理很简单——拿出所求区间 [ l , r ] 中的两个值进行比较,一般选用中间值(mid = ( l + r ) / 2 )与jvzquC41dnuh0lxfp0tfv8|gkzooa=8;37;:78ftvkimg8igvcomu8>723;:8>
7.三分搜索三分搜索法本文介绍了三分法查找的基本概念及其在解决特定问题中的应用。三分法适用于寻找凸性函数的最值,通过对区间进行划分,逐步逼近目标值。文章提供了三个实例,包括PartyAlltheTime、Turnthecorner及TexasTrip等问题的解决思路与代码实现。 首先来说说三分的概念: jvzquC41dnuh0lxfp0tfv8FEftkbonwu1cxuklqg1fkucrqu1;?9;:>9