HDU 5120 Intersection(2014亚洲区北京站现场赛)
来源:互联网 发布:mac能做什么 编辑:程序博客网 时间:2024/05/16 09:00
圆环相交面积,模板题
#include <iostream>#include <cmath>#include<cstdio>using namespace std;const double pi=acos(-1.0);const double eps=1e-10;struct point{ double x,y;};struct circle{ point centre; double r;};double dist(point a,point b){ return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}//??bool contain(circle a,circle b){ double len=dist(a.centre,b.centre); double mini=min(a.r,b.r),maxi=max(a.r,b.r); if(len+mini<=maxi) { /*printf("%.3lf\n",pi*mini*mini);*/return true; } return false;}// ?????? , ????int intersect(point c1,double r1,point c2,double r2){ return dist(c1,c2)<r1+r2+eps && dist(c1,c2)>fabs(r1-r2)-eps;}double circle_area(double x1,double y1,double r1,double x2,double y2,double r2){ circle aa,bb; aa.centre.x=x1,aa.centre.y=y1,aa.r=r1; bb.centre.x=x2,bb.centre.y=y2,bb.r=r2; if(contain(aa,bb)) { double len1=dist(aa.centre,bb.centre); double mini1=min(aa.r,bb.r),maxi1=max(aa.r,bb.r); return pi*mini1*mini1; } if(intersect(aa.centre,aa.r,bb.centre,bb.r)==0) { return 0; } double len=dist(aa.centre,bb.centre); double d=2*acos((aa.r*aa.r+len*len-bb.r*bb.r)/(2*aa.r*len)); double d2=2*acos((bb.r*bb.r+len*len-aa.r*aa.r)/(2*bb.r*len)); double area1=aa.r*aa.r*d/2-aa.r*aa.r*sin(d)/2; double area2=bb.r*bb.r*d2/2-bb.r*bb.r*sin(d2)/2; double area=area1+area2; return area;}int main(){ int T,num=0; double rr,RR,xx1,yy1,xx2,yy2; double Area1,Area2,Area3; scanf("%d",&T); while(T--) { num++; scanf("%lf %lf",&rr,&RR); scanf("%lf %lf",&xx1,&yy1); scanf("%lf %lf",&xx2,&yy2); Area1=circle_area(xx1,yy1,RR,xx2,yy2,RR); Area2=circle_area(xx1,yy1,RR,xx2,yy2,rr); Area3=circle_area(xx1,yy1,rr,xx2,yy2,rr); printf("Case #%d: %.6lf\n",num,Area1-2*Area2+Area3); } return 0;}
0 0
- HDU 5120 Intersection(2014亚洲区北京站现场赛)
- 2014ACM/ICPC亚洲区北京站现场赛(HDU 5111,5115,5119,5120,5122)
- hdu 5120 Intersection 2014ACM/ICPC亚洲区北京站-重现赛
- HDU 5112 A Curious Matt(2014亚洲区北京站现场赛)
- HDU 5113 Black And White(2014亚洲区北京站现场赛)
- HDU 5115 Dire Wolf(2014亚洲区北京站现场赛)
- HDU 5119 Happy Matt Friends(2014亚洲区北京站现场赛)
- HDU 5122 K.Bro Sorting(2014亚洲区北京站现场赛)
- HDU 5118 GRE Words Once More!(2014亚洲区北京站现场赛)
- HDU 5120 Intersection (计算几何)2014ICPC 北京站现场赛
- HDU-5035 Delivery(2014亚洲区北京站网络赛)
- HDU-5037 Frog(2014亚洲区北京站网络赛)
- 2016ACM/ICPC亚洲区北京站现场赛直播地址
- HDU-5038 Grade (2014亚洲区北京站网络赛)
- 2014ACM/ICPC亚洲区北京站-重现赛 I(hdu 5120)
- hdu 5127/2014亚洲(广州)现场赛A
- HDU 5112 2014ICPC北京站现场赛 A Curious Matt
- HDU 5122 K.Bro Sorting 2014ICPC 北京站现场赛
- DZY Loves Math IV
- 如何正确的使用正则表达式
- POJ - 3281 Dining
- mysql解决插入中文数据显示??
- 内存学习笔记--堆、栈等
- HDU 5120 Intersection(2014亚洲区北京站现场赛)
- 算法导论之线性时间排序(1)
- 随意杂记
- 2016 弱校联盟 二 B 题 E 题
- Android中Adapter的源码分析以及其中的陷阱
- HDU 5122 K.Bro Sorting(2014亚洲区北京站现场赛)
- C#实现百度地图瓦片下载器
- spoj 001
- 算法导论之线性时间排序(2)