AT184 2点間距離の最大値

2019-10-22 22:33:48


废话

备战初赛,考完一登洛谷就看到我掉蓝了……难受,赶快写题解补回去……

题目描述

翻译找都找不到……

没有样例吗?

给出一堆点,求它们之间的欧几里得距离中的最小值

思路简介

这里主要是给大家介绍一下cmath库的几个有意思的函数:pow(a,b)用来求 $a^b$ 与sqrt(a)用来求 $\sqrt{a}$

然后就很简单了,枚举两点之间距离,取最大值输出即可

解释看代码。

代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
double x[1000],y[1000],ans=0;
ll n;
inline double dis(int a,int b){//求距离函数
    return sqrt(pow(x[a]-x[b],2)+pow(y[a]-y[b],2));//使用了sqrt与pow函数
}
int main(){
    scanf("%lld",&n);//输入
    for(int i=0;i<n;i++) scanf("%lf%lf",&x[i],&y[i]);
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            ans=fmax(ans,dis(i,j));//求最大距离
        }
    }
    printf("%.03lf",ans);//输出答案,注意取3位小数
    return 0;
}