題目:
時間限制: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 4using
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要低,那麼我們要找的最小點一...