【t086】防护伞
来源:互联网 发布:图像处理分水岭算法 编辑:程序博客网 时间:2024/04/27 18:47
Time Limit: 1 second
Memory Limit: 128 MB
【问题描述】
据说2012的灾难和太阳黑子的爆发有关。于是地球防卫小队决定制造一个特殊防护伞,挡住太阳黑子爆发的区域,减少其对地球的
影响。由于太阳相对与地球来说实在是太大了,我们可以把太阳表面看作一个平面,中心定为(0,0)。根据科学家的情报,在
2012时,太阳表面上产生N个黑子区域,每一个黑子视为一个点。特殊防护伞可以看作一个巨大的圆面,现在地球防卫小队决定
将它的中心定位于某一个黑子,然后用伞面挡住其他黑子。因为制造防护伞的材料成本特别高,所以我们希望伞面尽可能的小。
[数据范围]
对于50%的数据:2 <= N <= 100
对于100%的数据:2 <= N <= 1,000
-10,000 <= x,y <= 10,000
[注意]
精确到小数点后4位
Pi = 3.1415926535
【输入格式】
第1行:一个整数N,表示黑子个数
第2..N-1行:每行两个整数,表示黑子的坐标(x,y)
【输出格式】
第1行:一个实数,表示伞的面积
Sample Input
3
0 1
-8 -4
-1 4
Sample Output
279.6017
【题目链接】:http://noi.qz5z.com/viewtask.asp?id=t086
【题解】
枚举以哪个黑子为中心;
确定哪个中心黑子之后;这个防护伞的最小半径就确定了(即这个点到其他点的最远距离);
在枚举的中心黑子形成的圆中选择半径最小的就好;
pi要按照所给的值不能写acos(-1.0);
【完整代码】
#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#define LL long longusing namespace std;const int MAXN = 1e3+10;const LL INF = 1e18;const double pi = 3.1415926535;struct abc{ LL x,y;};int n;abc a[MAXN];LL sqr(LL x){ return x*x;}int main(){ //freopen("F:\\rush.txt","r",stdin); cin >> n; for (int i = 1;i <= n;i++) cin >> a[i].x >> a[i].y; LL ans = INF; for (int i = 1;i <= n;i++) { LL d = 0; for (int j = 1;j <= n;j++) d = max(d,sqr(a[i].x-a[j].x)+sqr(a[i].y-a[j].y)); ans = min(ans,d); } double r = sqrt(double(ans)); printf("%.4lf\n",pi*r*r); return 0;}
0 0
- 【t086】防护伞
- 洛谷 P1927 防护伞
- 【NOIP模拟题】防护伞
- 10.9做题——洛谷P1927防护伞
- ARP防护
- 新型流感,注意防护,防护措施:
- 【linux】CC防护脚本 SQL防护脚本
- sql 注入防护与xss攻击防护
- 【安全防护】勒索病毒防护措施
- 深层病毒防护指南
- 心跳防护程序
- Web应用程序安全防护
- 走近Linux防护
- linux 安全防护
- 心跳防护程序
- 心跳防护程序
- 心跳防护程序
- ARP攻击与防护
- 关于如何获取上线后的app异常信息(bug)处理
- 【matlab】仿真4PSK调制信号在高斯信道下的性能,并与理论分析结果比较——仿真篇
- bootstrap table的父子表格
- C++中静态链接库创建与使用
- just do
- 【t086】防护伞
- 深入理解Java:注解(Annotation)--注解处理器
- 设计模式之OO思想
- 使用JDBC实现分页查询
- mybatis 批量插入 ,更新总结
- java 创建hashmap对象,
- redis学习笔记四之基础命令—set集合
- 请教个第三方登录的问题
- 搜索与回溯5.2——排列