#AT1826. D - Congruence Points
D - Congruence Points
D - 同余点
得分:400分
问题描述
你给出了两个集合$S=\{(a_1,b_1),(a_2,b_2),\ldots,(a_N,b_N)\}$和$T=\{(c_1,d_1),(c_2,d_2),\ldots,(c_N,d_N)\}$,它们都是二维平面上的$N$个点。
判断是否可以对$S$进行以下操作任意次数(可能是零次),以任意顺序使$S$变成$T$。
- 选择实数$p\ (0 \lt p \lt 360)$,并绕原点以顺时针方向将$S$中的每个点旋转$p$度。
- 选择实数$q$和$r$,将$S$中的每个点在$x$方向上移动$q$,在$y$方向上移动$r$。这里,$q$和$r$可以是任意实数,无论是正数、负数还是零。
约束
- $1 \leq N \leq 100$
- $-10 \leq a_i,b_i,c_i,d_i \leq 10$
- $i \neq j$时,$(a_i,b_i) \neq (a_j,b_j)$。
- $i \neq j$时,$(c_i,d_i) \neq (c_j,d_j)$。
- 输入中的所有值都是整数。
输入
输入从标准输入中以如下格式给出:
输出
如果我们可以将$S$变成$T$,则输出Yes
;否则输出No
。
3
0 0
0 1
1 0
2 0
3 0
3 1
Yes
下面的图显示了给定的点集,其中$S$和$T$中的点分别用红色和绿色表示:
在这种情况下,我们可以通过以下操作将$S$变成$T$:
- 绕原点将$S$中的每个点顺时针旋转270度。
- 将$S$中的每个点在$x$方向上移动3,在$y$方向上移动0。
3
1 0
1 1
3 0
-1 0
-1 1
-3 0
No
下面的图显示了给定的点集:
尽管$S$和$T$关于$y$轴对称,但我们无法按照问题描述中的旋转和平移将$S$变成$T$。
4
0 0
2 9
10 -2
-6 -7
0 0
2 9
10 -2
-6 -7
Yes
6
10 5
-9 3
1 -5
-6 -5
6 9
-9 0
-7 -10
-10 -5
5 4
9 0
0 -10
-10 -2
Yes