我们称满足 ∣u−v∣=∣u∣−∣v∣ 的数对 (u,v) 为完美平衡对。给定一个数组,统计所有满足 i<j 的完美平衡对 (i,j) 的数量。
这道题的核心在于判断数对 (x,y) 是否满足 ∣x−y∣=∣x∣−∣y∣。通过分析可以发现,满足条件的情况有两种:一是 y=0,此时无论 x 是什么都成立;二是 x 和 y 同符号且 ∣x∣≥∣y∣。因此,我们可以分别处理零元素和同符号元素,利用有序列表(如二分查找)高效统计符合条件的数对数目。最终通过遍历数组并维护正数和负数的有序列表,统计满足条件的数对总数。
条件分析:
在数学中,绝对值关系有时会展现出有趣的特性。对于两个整数 u 和 v,若满足 ∣u−v∣=∣u∣−∣v∣,则称 (u,v) 构成一个“完美平衡对”。给定一个长度为 n 的整数序列 A=[a1,a2,…,an],请你统计满足 1≤i<j≤n 且 (ai,aj) 是完美平衡对的有序对 (i,j) 的数量。n 的范围为 2≤n≤2×105,序列中每个整数的绝对值均不超过 109。
第一行包含一个整数 n,表示序列的长度。 第二行包含 n 个整数,依次为 a1,a2,…,an,表示给定的序列。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册