AT_abc022_d.[ABC022D] Big Bang

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

自宇宙由宇宙大爆炸诞生以来,已知其一直在膨胀。

作为天文学家的高桥君,决定测量宇宙的膨胀速度。

高桥君在两个不同的日子里,观测了同样的 NN 颗星星的位置。星星的位置被记录为坐标平面上的点。也就是说,每一天的观测结果都是由 NN 个点组成的点集。

通过对比两次观测的结果,可以发现:对第一次观测得到的点集依次进行以下三种操作后,可以得到第二次观测的点集。

  1. 沿同一方向平移相同的距离。
  2. 以原点为中心旋转相同的角度。
  3. 以原点为中心进行 PP 倍的相似放大(1≤P1 \leq P)。也就是说,将点 (a,b)(a, b) 变换为点 (a×P,b×P)(a \times P, b \times P),对所有点都执行此操作。

如果能够求出 PP 的值,就可以计算出膨胀速度。

然而,当高桥君准备求 PP 时,不小心丢失了记录各点对应星星的数据。

因此,他向你这位优秀的程序员寻求帮助。

给定第一次和第二次观测的结果,请你求出 PP 的值。

输入格式

输入以如下格式从标准输入给出:

NN
Ax1Ax_1 Ay1Ay_1
Ax2Ax_2 Ay2Ay_2
⋮\vdots
AxNAx_N AyNAy_N
Bx1Bx_1 By1By_1
Bx2Bx_2 By2By_2
⋮\vdots
BxNBx_N ByNBy_N

  • 第 11 行给出高桥君观测到的星星数量 NN,满足 2≤N≤1052 \leq N \leq 10^5。
  • 接下来的 NN 行中,第 ii 行给出第一次观测到的第 ii 颗星的位置的 xx 坐标和 yy 坐标,分别为两个整数 Axi,AyiAx_i, Ay_i,满足 −15,000≤Axi,Ayi≤15,000-15,000 \leq Ax_i, Ay_i \leq 15,000。
  • 再接下来的 NN 行中,第 ii 行给出第二次观测到的第 ii 颗星的位置的 xx 坐标和 yy 坐标,分别为两个整数 Bxi,ByiBx_i, By_i,满足 −109≤Bxi,Byi≤109-10^9 \leq Bx_i, By_i \leq 10^9。
  • 在第一次和第二次观测中,不会有多颗星星出现在同一个点上。
  • 第一次观测到的第 ii 颗星和第二次观测到的第 ii 颗星不一定是同一颗星。

输出格式

请输出 PP 的值,输出一行。如果输出的绝对误差或相对误差至少有一项不超过 10−610^{-6},则视为正确。输出末尾需换行。

输入输出样例

  • 输入#1

    4
    0 0
    0 1
    1 0
    1 1
    0 2
    2 0
    -2 0
    0 -2

    输出#1

    2.8284271247
  • 输入#2

    6
    3 4
    1 3
    4 3
    2 2
    0 1
    2 0
    5 5
    -1 2
    -1 -3
    2 1
    2 6
    4 -3

    输出#2

    2.2360679775

说明/提示

部分分

本题设有部分分。

  • 对于满足 1≤N≤3,0001 \leq N \leq 3,000 的数据集,答对可得 5050 分。
  • 对于满足 1≤N≤1051 \leq N \leq 10^5 的数据集,答对可再得 5050 分。总分为 100100 分。

样例解释 1

依次执行如下操作,可以将第一次观测的点集变换为第二次观测的点集:

  1. 沿 xx 轴方向平移 −0.5-0.5,沿 yy 轴方向平移 −0.5-0.5。
  2. 以原点为中心,顺时针旋转 45∘45^\circ。
  3. 以原点为中心放大 222\sqrt{2} 倍。

因此 P=22P = 2\sqrt{2}。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页