zoukankan      html  css  js  c++  java
  • 洛谷 P1927 防护伞

    题目描述

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

    输入输出格式

    输入格式:

     

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

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

     

    输出格式:

     

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

     

    输入输出样例

    输入样例#1: 复制
    3
    0  1 
    -8  -4 
    -1  4 
    
    输出样例#1: 复制
    279.6017

    说明

    【数据范围】

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

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

    -10000≤x,y≤10000。

    【注意】

    精确到小数点后 4 位

    π=3.1415926535

    思路:模拟

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    #define MAXN 1010
    using namespace std;
    const double PI=3.1415926535;
    int n;
    double minn=0x7f7f7f7f,num,ans;
    double dis[MAXN][MAXN]; 
    struct nond{
        double x,y;
    }cnt[MAXN];
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%lf%lf",&cnt[i].x,&cnt[i].y);
        for(int i=1;i<=n;i++)
            for(int j=i+1;j<=n;j++)
                dis[j][i]=dis[i][j]=sqrt((cnt[i].x-cnt[j].x)*(cnt[i].x-cnt[j].x)+(cnt[i].y-cnt[j].y)*(cnt[i].y-cnt[j].y));
        for(int i=1;i<=n;i++){
            num=0;
            for(int j=1;j<=n;j++)    num=max(num,dis[i][j]);
            if(num<minn){ minn=num;ans=num*num*PI; }
        }
        printf("%.4lf",ans);
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    Delphi命名规则
    highcharts 折线,饼状,条状综合图
    Highcharts创建一个简单的柱状图
    创建一个简单的WCF程序
    VS快捷键大全
    2021.05.28 手写简易web服务器
    2021.05.23 春眠不觉晓,optional知多少……
    springboot整合ActiveMQ实现异步交易
    安利一款云容器管理工具portainer……
    uglifyjs压缩js文件(指令压缩/ 批量压缩/ 编程方式压缩)
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7846805.html
Copyright © 2011-2022 走看看