【2020.10.28 SSL模拟赛T1】[洛谷 P1452]MSWORLD 【数学(玄学)】

题目描述

题目
给定平面上 n 个点,求凸包直径。

输入格式

第一行一个正整数 n。
接下来 n 行,每行两个整数 x,y,表示一个点的坐标。

输出格式

输出一行一个整数,表示答案的平方。

输入输出样例

输入 #1

4
0 0
0 1
1 1
1 0

输出 #1

2

分析:

大约 O ( n 2 ) O(n^2) O(n2)的复杂度+一堆玄学操作洛谷上过紫题?
勾股定理暴力求距离 取最大 即可 极限操作

CODE:

#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
ll n,x[50005],y[50005],ans;
int main(){
    
    
	scanf("%lld",&n);
	if(n==1)
	{
    
    
		printf("-1"); 
		return 0;  //数据问题
	}
	n=min(48000ll,n);  //玄学
	for(register int i=1;i<=n;i++)
	{
    
    
		scanf("%lld%lld",&x[i],&y[i]);
		for(register int j=1;j<i;j++)
			ans=max(ans,(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));  //勾股求距离
	}
	printf("%lld",ans);
	
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/dgssl_xhy/article/details/109337337