hdu3756 三分求最小圓錐

2021-06-21 21:46:43 字數 1303 閱讀 9321

題意:

讓你找到乙個最小的圓柱去覆蓋所有的豎直的線段..

思路:三分,直接去三分他的半徑,因為想下,如果某個半徑是最優值,那麼

從r(max->now->min)是的 v肯定是先增大然後減小再增大,也就是滿足凹凸性,所以可以三分,三分的時候根據當前的半徑我們可以列舉每乙個點,通過相似三角形去找到最大的h作為當前的h,然後根據v三分搜尋就行了,對於low的初始值我賦的是 x_y平面上離原點距離最遠的那個的距離+ 1e-9 ,防止被除數是0的情況.其他的沒啥就是簡單的三分,如果你想卡排名就不斷縮小eps知道wa為止.

#include#include#define eps 1e-9

#define n 10000 + 100

doublepi=acos(-1.0);

typedef struct

node;node node[n];

doubleq_h(

doubler,

intn)

returnmax;

}doubleq_v(

doubler,

doubleh,

intn)

voidsolve(

intn,

doubleloww)

printf("%.4lf %.4lf\n",h1,mid);

return;}

intmain

()solve(n,ma+eps);

}return0;

}

三分求極值

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

hdu 3400 Line belt 三分套三分)

題意 在乙個二維空間中給出兩條線段ab,cd,線段ab,cd上的運動速度分別為p,q。在這兩條線段之外的空間上運動的速度為r。求從a到d的最短時間。思路 ps 在這種求解方法中,中間運用了比較多的除法,導致精度損失,所以再開方前加乙個eps,防止開方後的值比真實值小。include include ...