BZOJ1043 HAOI2008 下落的圓盤

2021-07-27 16:57:29 字數 799 閱讀 6474

每個圓盤只會受到後邊的圓盤的影響

所以算一下每個圓盤和後邊的圓盤相交的圓心角,然後求個並即可

可以用餘弦定理

複雜度n^2 log n

注意特判沒有交-_-

#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define maxn 1010

#define maxm 1010

#define ll long long

#define eps 1e-8

#define mod 1000000007

#define inf 1000000000

const double pi=acos(-1);

struct cir;

struct itv

itv(double _l,double _r)

friend bool operator <(itv x,itv y)

r=max(r,a[i].r);

} re+=pi-r;

return re;

}int main()

for(i=n;i;i--)else}}

} if(flag)

ans+=cal()*c[i].r;

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

return 0;}/*

*/

bzoj1043 HAOI2008 下落的圓盤

題目鏈結 有n個圓盤從天而降,後面落下的可以蓋住前面的。求最後形成的封閉區域的周長。直接模擬,求出當前圓盤與之前的所有的圓盤的交點,用極角表示,模擬結束後求出每個圓盤未被覆蓋的角度即可。include include include include include include using nam...

HAOI2008 bzoj1043 下落的圓盤

description 有n個圓盤從天而降,後面落下的可以蓋住前面的。求最後形成的封閉區域的周長。看下面這副圖,所有的紅 色線條的總長度即為所求.input 第一行為1個整數n,n 1000 接下來n行每行3個實數,ri,xi,yi,表示下落時第i個圓盤的半徑和圓心座標.output 最後的周長,保...

bzoj1043 HAOI2008 下落的圓盤

傳送門 看到資料範圍不大,暴力走起。列舉每乙個圓,如果被完全覆蓋直接退出。否則如果被覆蓋掉一部分就求出覆蓋區間。然後就是sb的區間覆蓋問題了。include include include include include include define pi acos 1 using namespac...