跳到主要内容

P5454. 雷达等距计数

场次:2026年9月16日-非AI方向 · 来源:CodeFun2000 P5454

题目描述​

整点网格铺成的平面上,散落着若干座雷达站,每座站都用一对整数记下它的位置。

把其中一座站设成探测原点之后,若它到另外两座彼此不同的站,欧氏间距恰好相等,就把这三座站记成一次等心探测。

现给出 mm 座两两位置不同的站 locloc,第 pp 座写作 loc[p]=[up,vp]loc[p]=[u_p,v_p]。

所谓等心探测组,指有序三元 (p,q,r)(p,q,r):从 pp 到 qq 的欧氏间距等于从 pp 到 rr 的欧氏间距。间距按平面欧氏度量来算。请统计这样的有序三元一共出现多少次。

排列会计入次数:(p,q,r)(p,q,r) 一旦成立,把后两项对调得到的 (p,r,q)(p,r,q) 要再记一次。

输入格式​

首行给出站点总数 mm。

随后连续 mm 行,每一行是两个整数 upu_p 与 vpv_p,对应一座站的横纵坐标。

读入先后对应编号 1,2,…,m1,2,\dots,m。

3≤m≤2×1033 \le m \le 2\times 10^3

−105≤up,vp≤105-10^5 \le u_p,v_p \le 10^5

各站点位置两两不重合

输出格式​

输出一个整数,表示等心探测组的总次数。

示例​

示例 1​

输入:

4
0 0
0 3
3 0
3 3

输出:

8

说明:

四座站落在边长为 33 的正方形顶点上。

  • 以 (0,0)(0,0) 为原点:到 (0,3)(0,3)、(3,0)(3,0) 的间距都是 33,到 (3,3)(3,3) 为 323\sqrt{2},因此有序对有 22 组
  • 其余三座顶点情形相同
  • 总次数 4×2=84\times 2=8

示例 2​

输入:

3
0 0
4 0
2 3

输出:

2

说明:

三座站构成等腰三角形。

  • 以 (2,3)(2,3) 为原点:到 (0,0)(0,0) 与到 (4,0)(4,0) 的间距都是 13\sqrt{13},得到 (p,q,r)(p,q,r) 与 (p,r,q)(p,r,q) 各一次
  • 以 (0,0)(0,0) 或 (4,0)(4,0) 为原点时,到另外两座的间距不相等
  • 总次数为 22
加载评论中...