HIHOCODER 1142 三分 三分求極值

2022-07-26 10:03:15 字數 1006 閱讀 2286

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

在直角座標系中有一條拋物線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\)

直接看這個公式,完全不知道它是否為凸函式。

可以考慮選擇拋物線極值點\((-\frac,\frac)\)

這個點將這個拋物線分成兩個單調曲線,這兩個曲線與某個固定點的距離函式是凸函式。

即用三分解決

#include #define ll long long

#define inf 1000000000

#define pi acos(-1)

#define bug puts("here")

#define rep(i,x,n) for(int i=x;i<=n;i++)

#define dep(i,n,x) for(int i=n;i>=x;i--)

#define mem(a,x) memset(a,x,sizeof(a))

using namespace std;

inline int read()

while(ch>='0'&&ch<='9')

return x*f;

}const double eps=1e-6;

int a,b,c,x,y;

double check(double tx)

int main()

ans=min(ans,check(l));

printf("%.3f\n",ans);

}return 0;

}

hihoCoder 1142 三分求極值

時間限制 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 三分求極值

時間限制 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

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