BZOJ 1043 HAOI2008 下落的圓盤

2022-05-12 15:56:40 字數 708 閱讀 6038

幾何題。。。

先把所有圓儲存起來,然後對於每個圓我們求得之後放下的圓擋住了的部分,求個並集,並把沒被擋到的周長加進答案。

#include #include #include #include #include #include #include #define rep(i, l, r) for(int i=l; i<=r; i++)

#define pi acos(-1)

#define maxn 1234

typedef long long ll;

using namespace std;

inline int read()

while (isdigit(ch)) x=x*10+ch-'0', ch=getchar();

return x*f;

}struct line q[maxn*2];

bool cmp(line a, line b);

} rep(i, 1, top)

, q[i].r=2*pi;

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

double now=0, tmp=0;

rep(i, 1, top)

tmp+=2*pi-now;

ans+=tmp*r[a];

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

return 0;

}

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