#HK4935. 「EGOI2021」卢娜爱磕 cp

「EGOI2021」卢娜爱磕 cp

题目描述

题目译自 European Girls' Olympiad in Informatics 2021 Day1 T2. Luna likes Love

卢娜突发奇想,设计了一个有趣的活动。她将 2n2n 个朋友排成一列,给每个人分配了一个介于 11nn 之间的整数,每个数字恰好出现两次。拥有相同数字的两个朋友组成一对情侣。

卢娜希望安排这 nn 对情侣去约会,但事情没那么简单。要让一对情侣去约会,他们必须在队列中站在一起,中间不能有其他人。

卢娜可以执行以下两种操作:

  • 交换队列中相邻的任意两个朋友的位置。
  • 如果一对情侣在队列中相邻,卢娜可以安排他们去约会。这会将这对情侣从队列中移除,剩余的朋友会自动靠拢,填补空缺。

你可以按照任意顺序执行这些操作。比如,先进行几次交换,再安排几对情侣去约会,然后再继续交换。

请你找出并输出让所有情侣都去约会所需的最少操作次数。

输入格式

第一行包含一个整数 nn

第二行包含 2n2n 个用空格分隔的整数 aia_i (1ain)(1 \leq a_i \leq n),表示队列中朋友依次获得的数字序列。

输出格式

输出一行,包含一个整数,表示让所有情侣都去约会所需的最少操作次数。

3
3 1 2 1 2 3
4

卢娜可以先交换第三个和第四个朋友的位置。交换后,队列变为 311223311223

接着,她可以安排数字为 11 和数字为 22 的情侣去约会(顺序任意)。完成这些操作后,数字为 33 的两个朋友在队列中相邻,卢娜也可以安排他们去约会。

这个方案总共需要 44 次操作:11 次交换和 33 次约会。

5
5 1 2 3 2 3 1 4 5 4
7

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 77 每对情侣的两个朋友之间没有其他人,且 1n1001 \leq n \leq 100
22 88 每对情侣的两个朋友之间最多有一个人,且 1n1001 \leq n \leq 100
33 1111 队列前 nn 个朋友的数字为 11nn,每个数字恰好出现一次(不一定按顺序),且 1n30001 \leq n \leq 3000
44 1616 队列前 nn 个朋友的数字为 11nn,每个数字恰好出现一次(不一定按顺序),且 1n5000001 \leq n \leq 500000
55 2222 1n30001 \leq n \leq 3000
66 3636 1n5000001 \leq n \leq 500000