三分 三分求極值 演算法講解和題目

2022-08-31 15:36:16 字數 981 閱讀 2857

題目:

時間限制:10000ms

單點時限:1000ms

記憶體限制:256mb

描述這一次我們就簡單一點了,題目在此:

在直角座標系中有一條拋物線y=ax^2+bx+c和乙個點p(x,y),求點p到拋物線的最短距離d。

輸入第1行:5個整數a,b,c,x,y。前三個數構成拋物線的引數,後兩個數x,y表示p點座標。-200≤a,b,c,x,y≤200

輸出第1行:1個實數d,保留3位小數(四捨五入)

樣例輸入

2 8 2 -2 6
樣例輸出

2.437
解題思路:

這道題,我們拿到手後都知道應該求 d = min(sqrt((x-x)^2+(y-y)^2)), 那麼我們知道了我們的目標函式後,我們就應該把這個函式來化簡,化簡後,我們知道這個函式是乙個四次的函式,那麼對於我們最為普通的求導求極值的方法來說,是根本不可能達到的。進一步觀察題目,我們可以發現根據帶入的x值不同,d的長度恰好滿足凸形函式。

而我們要求的最短距離d,正好就是這個凸形函式的極值。

**:

1 # include 2 # include 3 # include 4

using

namespace

std;

5double

a,b,c,x,y;

6double possible( double

x )7

12int main(void)13

25else

2629

}30 printf("

%.3lf\n

",(possible(l)+(possible(r)))/2

);31

3233

return0;

34 }

三分求極值

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述 這一次我們就簡單一點了,題目在此 在直角座標系中有一條拋物線y ax 2 bx c和乙個點p x,y 求點p到拋物線的最短距離d。輸入第1行 5個整數a,b,c,x,y。前三個數構成拋物線的引數,後兩個數x,y表示p點座...

三分求極值

題目傳送 hihocoder 1142 三分 三分求極值 二分適用於單調函式,對於需要逼近的區間做二等分,來求解某點的值等。三分適用於凸形函式,對於需要逼近的區間做三等分。ac include include include include include include include inclu...

三分 三分求極值 HihoCoder 1142

描述 在之前的幾周中我們了解到二分法作為分治中最常見的方法,適用於單調函式,逼近求解某點的值。但當函式是凸形函式時,二分法就無法適用,這時就需要用到三分法。從三分法的名字中我們可以猜到,三分法是對於需要逼近的區間做三等分 week40 2.png 我們發現lm這個點比rm要低,那麼我們要找的最小點一...