【10.28模拟赛T1】[洛谷 P1452]Beauty Contest G【玄学】

题目描述

题目
给定平面上 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
#include
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;
} 

你可能感兴趣的:(比赛题解,数论,洛谷,玄学)