bzoj 2178 圓的面積並

2021-06-26 20:56:31 字數 982 閱讀 8514

給出n個圓,求其面積並

先給乙個數字n ,n< = 1000 接下來是n行是圓的圓心,半徑,其絕對值均為小於1000的整數

面積並,保留三位小數

自適應辛普森。。留個模板好了

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

const double eps=1e-13;

struct circle

;circle a[1001],cir[1001];

struct loc

sx[1001];

struct line

px[1001];

int p;

int st,se;

inline bool cmp1(circle x,circle y)

sort(px+1,px+1+pp,c***);

double r;

for(i=1;i<=pp;i++)

len+=r-px[i].l;

i=j-1;

}return len;

}inline double cal(double len,double lh,double mh,double rh)

inline double simpson(double l,double mid,double r,double lh,double mh,double rh,double s)

st=i;

se=j-1;

i=j-1;

mid=(l+r)/(double)2;

lh=geth(l);

rh=geth(r);

mh=geth(mid);

ans+=simpson(l,mid,r,lh,mh,rh,cal(r-l,lh,mh,rh));

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

return 0;

}

BZOJ 2178 圓的面積並

description 給出n個圓,求其面積並 題目分析 simpson積分模板題。其實程式有bug,懶得寫了。其實就是不斷的二分,到乙個較小值的時候,就可以了。include include include define f i,j,n for int i j i n i define d i,j...

BZOJ2178 圓的面積並

給出n個圓,求其面積並 先給乙個數字n n 1000 接下來是n行是圓的圓心,半徑,其絕對值均為小於1000的整數 面積並,保留三位小數 直接套 simpson 積分板子就好了,判掉圓包含的情況,然後每次求 f x 的時候直接列舉所有的圓然後掃瞄線暴力搞,因為積分的意義下 f a 的幾何意義就是 x...

BZOJ 2178 圓的面積並 辛普森積分

題面 給定n個圓,求其面積並,n 1000 題目分析 直接辛普森積分上。有乙個優化,預先把被其它圓包含的圓濾去。辛普森積分會求很多次一條線上的並,這個優化的效果很明顯,從10000ms 2500ms code include include include define maxn 1005 usin...