博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

防护伞

Posted on 2010-10-22 20:23  深处的心扉  阅读(302)  评论(0)    收藏  举报

【问题描述】

据说2012的灾难和太阳黑子的爆发有关。于是地球防卫小队决定制造一个特殊防护伞,挡住太阳黑子爆发的区域,减少其对地球的影响。由于太阳相对于地球来说实在是太大了,我们可以把太阳表面看作一个平面,中心定为(0,0)。根据科学家的情报,在2012年时,太阳表面上产生N个黑子区域,每一个黑子视为一个点。特殊防护伞可以看作一个巨大的圆面,现在地球防卫小队决定将它的中心定位于某一个黑子,然后用伞面挡住其他黑子。因为制造防护伞的材料成本特别高,所以我们希望伞面尽可能的小。

【输入格式】

第1行:一个整数N,表示黑子个数。

第2~N-1行:每行两个整数,表示黑子的坐标(x,y)。

【输出格式】

第1行:一个实数,表示伞的面积。

【样例输入】

3

0 1

-8 -4

-1 4

【样例输出】

279.6017

【数据范围】

对于50%的数据:2≤N≤100。

对于100%的数据:2≤N≤1,000。

-10,000≤x,y≤10,000。

【注意】

精确到小数点后4位

Pi=3.1415926535

 

分析:考查枚举

        依次枚举每一个点i,计算出所有点j于与点i的距离dist[i][j],则以i为圆心覆盖所有的点的圆的半径为R[i]=Max{dist[i][j]|1<=j<=N},因为要求圆的面积最小,即圆的半径最小,所以答案即是R[]数组中最小的一个

时间复杂度:O(N^2)

 

代码:

代码

--------由JackerJay原创,转载请注明出处