POJ 1375 数学几何题

来源:互联网 发布:qq邮箱营销软件 编辑:程序博客网 时间:2024/04/28 23:30

简单几何题,画个图形就可以得到结果了。

连接

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std ;struct line{double l,r;}L[1000];bool operator <(const line &a,const line &b){return a.l<b.l;}int main(){   int n;double x,y,x1,y1,r,l;    while(cin>>n,n){cin>>x>>y;for(int i=0;i<n;i++){scanf("%lf %lf %lf",&x1,&y1,&r);double d=sqrt((x1-x)*(x1-x)+(y1-y)*(y1-y));double a=asin(r/d);double b=asin((x-x1)/d);double O1=a+b,O2=b-a;L[i].l=x-y*tan(O1);L[i].r=x-y*tan(O2);}sort(L,L+n);l=L[0].l,r=L[0].r;for(int i=0;i<n;i++){if(L[i].l>r){printf("%.2f %.2f\n",l,r);l=L[i].l,r=L[i].r;}else {r=max(r,L[i].r);}}printf("%.2f %.2f\n",l,r);puts("");  } return 0 ;}


原创粉丝点击