#HK5324. 「EGOI2025」一个弦线问题
「EGOI2025」一个弦线问题
题目描述
题目译自 European Girls' Olympiad in Informatics 2025 Day2 T1. A String Problem
Lara 非常喜欢跳蚤市场。上周六,波恩举办了德国最大的跳蚤市场之一——Rheinaue-Flohmarkt。当然,Lara 整天都在那里,漫步市场、讨价还价,买了各种稀奇古怪的东西。她带回家最有趣的东西是一个完美圆形的小竖琴。当她想开始弹奏时,她注意到琴弦杂乱无章,而不是彼此平行。
具体来说,圆形框架上均匀分布着 个销钉。 根琴弦中的每一根都由两个销钉固定,每个销钉恰好连接一根琴弦。
Lara 对竖琴了解不多,但她强烈怀疑琴弦应该对齐成彼此平行的样子。为了解决这个问题,她决定重新安装琴弦。每一步,她可以将一根琴弦的一端从其销钉上取下,并重新连接到另一个销钉上。在这个过程中,多个琴弦的端点可以连接到同一个销钉上。最后,每个销钉上应该再次恰好连接一根琴弦,并且 根琴弦应该彼此平行。
下面你可以看到两个带有平行琴弦的竖琴示例。

由于每次重新安装琴弦都需要很多工作,Lara 希望以尽可能少的步骤重新安装竖琴。帮助 Lara 找到一个最少步骤的重新安装序列!
输入格式
输入的第一行包含一个整数 ,表示琴弦的数量。琴弦编号为 到 。
接下来有 行,其中第 行包含两个整数 和 ,表示固定第 根琴弦的两个销钉。销钉按顺时针顺序编号为 到 。每个销钉恰好连接一根琴弦。
输出格式
输出一个整数 ,表示重新安装竖琴使得所有琴弦彼此平行所需的最小步骤数。
接下来输出 行,每行包含三个整数 ,表示在解决方案的这一步中,应将第 根琴弦的一端从销钉 上取下,并重新连接到销钉 上。
注意,如果在那一刻第 根琴弦未连接到销钉 ,则移动序列被认为是错误的。
如果存在多个答案,你可以输出其中任意一个。注意,部分正确的答案仍可能获得一些分数,如下一节所述。
5
1 5
4 9
6 3
2 7
0 8
3
4 8 9
0 5 8
1 9 5
在第一个样例中,我们有一个有 根琴弦的竖琴。在第一步中,琴弦 从销钉 取下并重新连接到销钉 。在下一步中,琴弦 从销钉 取下并重新连接到销钉 。在最后一步中,琴弦 从销钉 取下并重新连接到销钉 。现在,每个销钉上恰好连接一根琴弦,并且所有琴弦彼此平行。此序列如下图所示。

第一个样例满足子任务 的限制条件。
5
0 1
3 2
4 5
6 7
9 8
4
1 3 9
4 9 3
2 5 7
3 7 5
下图显示了样例 的竖琴初始状态。

第二个样例满足子任务 的限制条件。
4
1 4
6 3
5 2
7 0
2
0 4 6
1 6 4
第三个样例满足子任务 的限制条件。
6
3 9
7 5
10 2
0 6
1 11
8 4
6
3 6 1
4 1 2
2 2 3
0 3 4
5 4 5
1 5 6
第四个样例满足子任务 的限制条件。
数据范围与提示
对于所有输入数据,满足:
- 。
- 。
- 所有 和 都是唯一的。
若第一行输出的最小步骤数 值正确,而给出的方案不正确,程序可获 的分数。
详细子任务附加限制及分值如下表所示。
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| 对于所有 ,琴弦 连接到销钉 和 | ||
| 所需步骤数最多为 | ||
| 保证存在一个解决方案,其中一根琴弦连接到销钉 和 | ||
| 无附加限制 |