bzoj1043 HAOI2008 下落的圓盤

2021-07-30 17:28:23 字數 783 閱讀 3078

傳送門

看到資料範圍不大,暴力走起。

列舉每乙個圓,如果被完全覆蓋直接退出。

否則如果被覆蓋掉一部分就求出覆蓋區間。

然後就是sb的區間覆蓋問題了。

#include

#include

#include

#include

#include

#include

#define pi acos(-1)

using namespace std;

int n,top;

double ans,r[1005],x[1005],y[1005];

struct lineq[2005];

bool cmp(line a,line b)

double dis(int a,int b)

bool init(int a,int b)

void add(int a,int b);

}double cal(int

x); q[i].r=2

*pi;}}

sort(q+1,q+top+1,cmp);

double tmp=0,now=0;

for (int i=1;i<=top;i++)

if (q[i].l>now)

else now=max(now,q[i].r);

tmp+=2

*pi-now;

return r[x]*tmp;

}int main()

BZOJ1043 HAOI2008 下落的圓盤

每個圓盤只會受到後邊的圓盤的影響 所以算一下每個圓盤和後邊的圓盤相交的圓心角,然後求個並即可 可以用餘弦定理 複雜度n 2 log n 注意特判沒有交 include include include include include include include include include in...

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 最後的周長,保...