#iai21a1. 消消乐(二)(Match-2)
消消乐(二)(Match-2)
消消乐(二)
题目描述
有 个数字排成一列,这些数字的范围在 到 之间,每个数字出现恰好两次。
小爱可以交换任何两个相邻的数字,如果交换后相邻数字相同,它们会自动消除。其余数字会自动靠近形成新的相邻状态。如果序列缩短后靠近的数字也相同,则会自动消除。直到所有数字全部消除为止,游戏结束。
请帮忙计算一下,最少需要交换多少对数字,才能使游戏结束。
输入格式
第一行:单个正整数 ;
第二行: 个数字 ,。
输出格式
单个整数:表示消除序列的最少交换次数。
样例输入 #1
5
5 2 3 1 4 1 4 3 5 2
样例输出 #1
2
样例说明 #1
先交换 4 与 1,然后交换 2 与 5。
数据范围
- 对于 30% 数据,;
- 对于 60% 数据,;
- 对于 100% 数据,。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1~2 | 样例 |
| 1 | 20 | 3~8 | 小规模 N≤10 / 特殊: 成对相邻 / 特殊: 全相同配对 |
| 2 | 15 | 9~11 | Hack: N=1边界 / Hack: 完全逆序配对 / Hack: 嵌套配对 |
| 3 | 30 | 12~20 | 中规模 N≈100~5000 / 大规模 N≈1e5 压力 |
| 4 | 25 | 21~25 | 随机 N=1~1e5 回归 |