題意 : 給你乙個點和乙個圓形和乙個矩形,讓你求這個點先到矩形,再到圓形折線的最小值。
題解 : 我們發現,對於圓上的任意乙個點我們都可以求出這個點到這個矩形的最小距離,然後我們就可以通過三分圓上的點找到這個最優解就可以了
#include
#include
#include
#include
#include
using namespace std
;const double pi = 3.141592653589793
;const double eps = 1e-8
;const double inf = 1e30
;struct point ;
struct circle ;
struct rec ;
circle c;
point p;
rec fx;
int sgn (double x)
double dist (point a,point b)
double cross (point a,point b,point c)
double dot (point a,point b,point c)
double dis (point a,point b,point c)
double f (double ang)
double solve ()
else
}l = pi,r = 2 * pi;
while (r - l > eps)
else
}return res;
}int main ()
return 0
;}
HDU 5531 平面幾何 三分
題意是給你n個點,然後要求以每個點為圓心畫乙個圓,使得兩兩相鄰的圓心的圓相切,不相鄰的圓可以相交,如果可以作這樣的圓那麼輸出圓面積和的最小值和,每個圓的半徑,否則輸出impossible。首先我們求出每一條鄰邊的長度,記為l1,l2,l3,ln,假定第乙個圓的半徑為x,那麼我們可以用x表示所有圓的半...
hdu 3400 Line belt 三分套三分)
題意 在乙個二維空間中給出兩條線段ab,cd,線段ab,cd上的運動速度分別為p,q。在這兩條線段之外的空間上運動的速度為r。求從a到d的最短時間。思路 ps 在這種求解方法中,中間運用了比較多的除法,導致精度損失,所以再開方前加乙個eps,防止開方後的值比真實值小。include include ...
HDU 4717 三分板子
n個點有起始座標,以及速度向量,問從t 0開始兩個點的最遠距離的最小值是多少。兩點之間的距離是二次函式,凹函式,取最大值還是凹函式。求此凹函式的最小值,直接套三分。include using namespace std const int maxn 305 const double eps 1e 6...