首页 > 试题广场 >

最大 FST 距离

[编程题]最大 FST 距离
  • 热度指数:272 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
\hspace{15pt}给定 n 个元素,第 i 个元素具有特征值 A_i。定义FST 距离如下:

\mathrm{dist}(i,j)=\lvert i^2-j^2\rvert+\lvert A_i^2-A_j^2\rvert

\hspace{15pt}请计算 A_i 中所有元素对儿中的最大 FST 距离。

输入描述:
\hspace{15pt}第一行输入一个整数 n\left(1\leqq n\leqq 10^5\right)
\hspace{15pt}第二行输入 n 个整数 A_1,A_2,\dots,A_n\left(1\leqq A_i\leqq 10^9\right)


输出描述:
\hspace{15pt}输出一个整数,表示最大距离。
示例1

输入

2
4 3

输出

10

说明

|4^2-3^2|+|2^2-1^2| = 7+3 = 10

备注:

头像 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^ 展开全文
头像 niepan_gao
发表于 2025-06-24 20:03:42
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner scanner = 展开全文
头像 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); 展开全文
头像 MecciMiaowu
发表于 2025-06-18 13:32:22
注意到式子 很像曼哈顿距离的公式,故考虑转化。 考虑二维平面内的 个点 ,那么答案就是这 个点中所有点对曼哈顿距离的最大值。 我们可以将曼哈顿距离转化为切比雪夫距离,也就是 这些点中的切比雪夫距离的最大值,证明过程 见此处。 这个切比雪夫距离很好求,排序一下即可。 Code: const i 展开全文
头像 张广文
发表于 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 展开全文