首页 > 试题广场 >

Distance

[编程题]Distance
  • 热度指数:74 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
FST作为小朋友,经常会遇到和距离有关的问题,但是他已经厌倦了曼哈顿距离和欧几里德距离,所以FST就定义了一种FST距离。
这种距离并不用于空间或平面中,而运用于FST发明的一些神奇的算法中(唔... ...)。
设i号元素的特征值为Ai,则i和j的FST距离是 |i2 - j2|+|Ai2 - Aj2|。
为了实现某新的数据结构,FST想在一大堆元素中找出距离最大的一对元素,他不关心是哪一对元素,只想求出最大距离。

输入描述:
第一行,一个正整数n,为元素个数。
第二行,n个正整数Ai为这n个元素的特征值。


输出描述:
一行,一个正整数表示最大距离。long long请用lld
示例1

输入

2
4 3

输出

10

备注:
n≤105,Ai≤109
头像 shyyhs
发表于 2020-04-02 18:43:49
观察答案易知 答案无非 1.i*i-j*j+ai*ai-aj*aj 2.i*i-j*j+aj*aj-ai*ai 3.j*j-i*i+ai*ai-aj*aj 4.j*j-i*i+aj*aj-ai*ai答案肯定取4种情况的max...那么我枚举这四种情况的最大值就好了~观察易知就就两种方式取正负..取最 展开全文
头像 威风镰鼬
发表于 2022-02-09 18:08:18
思路 ∣i2−j2∣+∣ai2−aj2∣可以化为四种形式,取绝对值也就两种形式,因此我们只需要对i2−ai2以及i2+ai2排序,然后最大减最小比较即可。|i^2-j^2|+|a_i^2-a_j^2|可以化为四种形式,取绝对值也就两种形式,\\ 因此我们只需要对i^2-a_i^2以及i^2+a_i^ 展开全文
头像 whitewall_9
发表于 2020-07-06 22:13:26
#include<stdio.h> #include<math.h> #define max 100005 long long n=0; long long MAX(long long *p); 展开全文
头像 张广文
发表于 2020-03-23 20:49:30
include<bits/stdc++.h> using namespace std;typedef long long ll;const int maxn = 100000 + 10;const int INF = 1e9 + 7;ll x[maxn], y[maxn];int mai 展开全文

问题信息

上传者:牛客301599号
难度:
0条回答 1093浏览

热门推荐

通过挑战的用户

Distance