題意:給出一些圓,選擇其中乙個圓的圓心為圓心,然後畫乙個大圓,要求大圓最少覆蓋每個圓的一半面積。求最小面積。
解題思路:首先列舉每個圓,以其圓心作為大圓的圓心,然後再用二分去尋找最小的半徑。
#include#include#include#includeusing namespace std;
const int maxn = 20;
const double eps = 1e-8;
const double pi = 3.14159265;
struct circle
p[maxn];
int n;
double dist(double x1,double y1,double x2,double y2)
double area(double x0,double y0,double radius,circle p)
bool check(int k,double radius)
int main()
else l = mid;
}} printf("%.4f\n",ans);
} return 0;
}
HDU 3264 求兩圓相交的面積
此題意很簡單,思路也容易想到。但是我就是卡在了求兩圓相交求面積的地方。還好現在有了模板了。不說了,直接貼 還得多多總結,二分真的很好用,要學會用啊!include include include includeusing namespace std define inf 2147483647 def...
hdu5012 圓環相交面積
題中給了 兩個同心圓,乙個大圓乙個小圓,然後再給了乙個大圓乙個小圓也是同心圓,求這兩個圓環相交的面積,用兩個大圓面積減去兩倍大小圓面積交加上兩個小圓面積交,就ok了 這裡算是坑明白了 使用acos的時候要保證不能讓大於1或者小於 1的數進來,因此加乙個判斷,在現場的時候就是這裡被坑死了 includ...
hdu1669 二分多重匹配 二分
n個人分成m組,求人數最多的那一組人數的最小值。每個人肯定只能匹配乙個組,但乙個組可以匹配多個人,因此屬於多重匹配。我們設定乙個limit,表示每組最多能容納的人數。在dfs u 尋找u的匹配時,如果某一組vv的人數小於limit,那麼可以把u和vv匹配,vv已經匹配的人數 1。否則,當人數已經達到...