SP1698 PLSEARCH - Polygonal Line Search

题目描述

在 xy 平面上给定多条折线。你需要找出哪些折线与给定的模板形状相同。 一条折线由若干段平行于 x 轴或 y 轴的线段组成。它通过依次给出的顶点坐标定义,从起点到终点走向,当到达每个顶点时都转 90 度。每条折线不会重复经过同一点。两条折线在仅允许平移和旋转的情况下可以完全重合时,视为具有相同的形状。不允许放大或翻转;若是将顶点顺序反转,两条线仍视为相同形状。 请编写一个程序,找出与模板形状相同的折线。 ![subir imagines](https://cdn.luogu.com.cn/upload/vjudge_pic/SP1698/5d24ef5966df6572cf4ec380e7908f8102569181.png) 图 1:折线示例。在此图中,折线 A 和 B 具有相同的形状。

输入格式

输入包含多个数据集,最后以一个仅包含数字 0 的行作为结束标志。 一个数据集的格式如下: 第一行是一个整数 $$ n $$,表示 xy 平面上的折线数量。$$ n $$ 满足 $$ 1 \leq n \leq 50 $$。其中,第 0 条折线是模板。 接下来是 $$ n $$ 条折线的描述,每条折线的格式如下: 第一行是整数 $$ m $$,为折线的顶点数,其中 $$ 3 \leq m \leq 10 $$。接下来的 $$ m $$ 行,每行包含两个用空格分隔的整数 $$ x_i \ y_i $$,分别表示一个顶点的 x 坐标和 y 坐标,坐标范围满足 $$ -10000 < x_i, y_i < 10000 $$。

输出格式

对于输入中的每个数据集,你的程序应该以升序列出与模板形状相同的折线的编号。每个编号占一行,行中不得有其他字符。 在每个数据集的输出结束后添加一行,只包含五个连续的 "+" 号。 **本翻译由 AI 自动生成**