#P12649. [KOI 2024 Round 2] 收集彩球
[KOI 2024 Round 2] 收集彩球
题目背景
试题来源:https://koi.or.kr/archives/。中文翻译做了少量本土化修改。
按照署名—非商业性使用—相同方式共享 4.0 协议国际版进行授权。
题目描述
现在有 个彩球和 个盒子。彩球的颜色为 中的某一个。对于每种颜色,恰好有两个彩球被涂成该颜色。每个盒子最多可以容纳两个彩球。
最开始,第 到第 个盒子中每个盒子内都放有两个彩球,第 个盒子是空的。第 个盒子中,最上面那个彩球的颜色为 ,下面那个彩球的颜色为 。
你可以将一个盒子顶部的彩球取出,放入另一个盒子的顶部,完成一次移动操作。
你的目标是使得每种颜色的两个彩球都被放入同一个盒子中。每次移动操作必须满足下列两个条件之一:
- 被放入彩球的目标盒子是空的;
- 被放入彩球的目标盒子中恰好已有一个彩球,并且该彩球与被放入的彩球颜色相同。
请你编写程序,计算为了实现目标——使每种颜色的两个彩球在同一个盒子中,所需的最小移动次数。如果无法实现目标,请输出 。
输入格式
第一行输入一个整数 。
接下来的 行中,第 行输入两个整数 和 ,以空格分隔,表示第 个盒子中从上到下的两个彩球的颜色。
输出格式
如果存在解决方案,输出最小的移动次数;如果不存在解决方案,输出 。
5
4 1
3 5
2 4
3 2
5 1
6
2
1 1
2 2
0
4
2 1
3 1
2 4
3 4
-1
提示
样例 1 说明
可以按照如下步骤完成:
- 将第 4 号盒子中的颜色为 的球移动到第 6 号盒子;
- 将第 3 号盒子中的颜色为 的球移动到第 4 号盒子;
- 将第 1 号盒子中的颜色为 的球移动到第 3 号盒子;
- 将第 2 号盒子中的颜色为 的球移动到第 6 号盒子;
- 将第 5 号盒子中的颜色为 的球移动到第 2 号盒子;
- 将第 5 号盒子中的颜色为 的球移动到第 1 号盒子。
约束条件
- 所有输入均为整数。
- 对于每个 , 中恰好有两个数等于 。
子问题
- (2 分)
- (23 分)
- (15 分)存在使所有同色彩球放入同一盒子的方法
- (15 分)
- (45 分)无附加限制条件
翻译由 ChatGPT-4o 完成