///给你若干个没有交集的圆,以其中一个圆的圆心为圆心做一个圆
///使得这个圆至少包含所有圆面积的一半,求这个圆最小的半径
# include <stdio.h>
# include <algorithm>
# include <iostream>
# include <string.h>
# include <math.h>
#include <string>
using namespace std;
struct node
{double x;double y;double r;
};
int t1,t2;
double rr;
const double d = 1e-10;
const double pi = acos(-1.0);
struct node a[25];
double ss;
double cal(int x1,int y1)///两圆圆心距离
{return sqrt((a[x1].x-a[y1].x)*(a[x1].x-a[y1].x)*1.0+(a[x1].y-a[y1].y)*(a[x1].y-a[y1].y)*1.0);
}
double area(double mid)///求两圆交叉面积
{double a = cal(t1, t2), b = rr, c = mid;double cta1 = acos((a * a + b * b - c * c) / 2 / (a * b)),cta2 = acos((a * a + c * c - b * b) / 2 / (a * c));double s1 = rr*rr*cta1 - rr*rr*sin(cta1)*(a * a + b * b - c * c) / 2 / (a * b);double s2 = mid*mid*cta2 - mid*mid*sin(cta2)*(a * a + c * c - b * b) / 2 / (a * c);return s1 + s2;
}
double f(double m)
{if(area(m)-ss>=1e-20)return 1;elsereturn 0;
}
int main()
{int t,n,i,j;double min1,max1,min2,max2,jj;while(~scanf("%d",&t)){while(t--){scanf("%d",&n);for(i=0; i<n; i++)scanf("%lf%lf%lf",&a[i].x,&a[i].y,&a[i].r);if(n==1){min1=sqrt(a[0].r*a[0].r*0.5);printf("%.4lf\n",min1);}else{double lll=1000000000;for(i=0; i<n; i++){max1=-1; double ll=-1;for(j=0; j<n; j++){if(i!=j){t2=i;t1=j;rr=a[t1].r;max1=cal(i,j);min2=max1+rr;ss=pi*rr*rr*0.5;double l=max1;double r=min2;while(r-l>d)///二分面积{double  mid=(l+r)/2;if(f(mid)==1)r=mid;elsel=mid;}ll=max(ll,l);}}lll=min(lll,ll);}printf("%.4lf\n",lll);}}}return 0;
}

hdu 3265 Posters相关推荐

  1. HDU 3265 - Posters

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=3265 方法 : 线段树 + 扫描线 昨晚做了哈,想用个高效的方法(每个"回"字只 ...

  2. HDU 3265(矩形面积并-分割矩形)

    Posters Problem Description 有很多海报,每个海报都被减去了一个矩形(可能全减),现在给出没张海报的位置,求它们的面积并. 保证坐标在(0, 0)到(50000, 50000 ...

  3. hdu 3265 线段树扫描线(拆分矩形)

    题意:        给你n个矩形,每个矩形上都有一个矩形的空洞,所有的矩形都是平行于x,y轴的,最后问所有矩形的覆盖面积是多少. 思路:       是典型的矩形覆盖问题,只不过每个矩形上多了一个矩 ...

  4. 响应式扩展_响应式和无限扩展的JS动画

    响应式扩展 Back in late 2012 it was not easy to find open source projects using requestAnimationFrame() - ...

  5. android实现首页倒计时,android 利用CountDownTimer实现时分秒倒计时效果

    利用name或id属性设置页面跳转的锚点 理论准备         网页中的链接按照链接路径的不同,可以分为3种类型,分别是内部类型.锚点链接和外部链接:         按照使用对象的不同,网页中的 ...

  6. 扫描线三巨头 hdu1928hdu 1255 hdu 1542 [POJ 1151]

    学习链接:http://blog.csdn.net/lwt36/article/details/48908031 学习扫描线主要学习的是一种扫描的思想,后期可以求解很多问题. 扫描线求矩形周长并 hd ...

  7. HDU题目分类大全【大集合】

    基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.  1032.1037.1040.1048.1056.105 ...

  8. HDU 5643 King's Game 打表

    King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...

  9. 转载:Hdu 题目分类

    原址点击 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056. ...

最新文章

  1. Nginx搭建静态网站
  2. 【世界最大人脸对齐数据集】ICCV 2017:距离解决人脸对齐已不远
  3. cobertura-maven-plugin
  4. @Async的使用、原理及使用时可能导致的问题
  5. 各浏览器对document.getElementById等方法的实现差异
  6. 2.2 Logistic 回归-深度学习-Stanford吴恩达教授
  7. 使用URLRewriter实现URL重写
  8. Flex与JavaScript的交互:调用JavaScipt或者被JavaScript调用
  9. linux suse11 nfs,suse11 nfsserver服务安装
  10. URI,URL与URN的区别
  11. 建立可视化决策平台,“数据化”首当其冲!
  12. C#用域账号登陆,访问网络路径
  13. PostgreSQL的JDBC驱动---jdbc的链接数据库
  14. 不小心格式化硬盘,重新分区了硬盘的恢复方法
  15. 浅谈嵌入式技术的发展
  16. html制作发光效果的文字,HTML5/CSS3发光文字可自定义文字色彩效果很赞
  17. 第三方软件测试 CNAS软件测试报告
  18. USACO1996《修理牛棚》解题报告
  19. Go 项目自动生成接口文档
  20. 类各种成员的访问权限 及 友员类和友员函数

热门文章

  1. 带有分销体系的开源知识付费系统——cremb
  2. Ghost过程中出现GHOSTERR.TXT文件的解决方法
  3. java盖金字塔的游戏,最强大脑积木金字塔
  4. 【粒子动画】iOS流星雨效果如何实现
  5. POST http://域名:8080/项目/base/api/login/user/login net::ERR_CONNECTION_RESET 错误
  6. python坐标网matplotlib_使用matplotlib画双纵轴坐标
  7. c语言switch case解释,C语言switch case语句详解
  8. win10 64位系统 打开光盘出现339错误 缺少mscomctl.ocx组件 解决方案
  9. ESP-MQTT-AT指令连接阿里云物联网平台
  10. My blog has been migrated to GitHub.