视频加载失败

安吉D19 T3

730 字
4 分钟
安吉D19 T3
原题呈现

P9310 [EGOI 2021] Luna likes Love / 卢娜爱磕 cp#

题目描述#

卢娜想出了一个不同寻常的点子.她让 2n2n 个朋友排成一条长队,并给他们每人一个 1n1\sim n 的整数.每个整数恰好出现两次.每一对有相同数字的朋友组成一对情侣.

卢娜希望让每一对情侣去一次约会.然而,并没有这么简单.为了让一对情侣去约会,双方在队伍中必须互相紧挨着,也就是说不能有任何人站在他们中间.

卢娜可以进行两种操作:

  • 她可以让任意两个紧挨着的人交换位置.
  • 如果一对情侣互相紧挨着,卢娜可以让他们去约会.这一对情侣将从队伍中离开,后面的人会补上他们的位置.

所有操作可以以任意的顺序进行.例如,她可以交换几次,然后让几对情侣去约会,再交换几次.

请求出让所有人去约会的最少操作次数.

输入格式#

第一行一个整数 nn

第二行 2n2n 个整数 aia_i,依次表示队伍中朋友拿到的数字.

输出格式#

一行,一个整数,表示最少操作次数.

输入输出样例 #1#

输入 #1#

3
3 1 2 1 2 3

输出 #1#

4

输入输出样例 #2#

输入 #2#

5
5 1 2 3 2 3 1 4 5 4

输出 #2#

7

说明/提示#

样例 11 解释

卢娜先让第三个人和第四个人交换位置,得到 3,1,1,2,2,33,1,1,2,2,3

然后她可以让数字 1122 的情侣去约会.之后,数字 33 的情侣会互相紧挨着,卢娜可以让他们也去约会.

综上,共需要 44 次操作:一次交换和三次让情侣去约会.

数据范围

对于全部数据,1n5×1051\le n\le 5\times 10^51ain1\le a_i\le n

  • 子任务一(77 分):任意一对情侣都紧挨着,n100n\le 100
  • 子任务二(88 分):任意一对情侣之间至多有一个人,n100n\le 100
  • 子任务三(1111 分):前 nn 个人的数字构成一个 1n1\sim n 的排列,n3×103n\le 3\times 10^3
  • 子任务四(1616 分):前 nn 个人的数字构成一个 1n1\sim n 的排列.
  • 子任务五(2222 分):n3×103n\le 3\times 10^3
  • 子任务六(3636 分):无特殊限制.

题意就是给你一个序列,保证每种数都只有两个,你可以交换相邻的两个数,或是使得相邻的两个相同的数被删除.求让整个序列全被删除的最小操作数.

先考虑子任务三和四,若前 nn 个人是一个 [1,n][1,n] 的排列,那么很简单,每一次都贪心地选取距离最小的一对,去尝试进行交换.通过观察,我们可以发现,对每一对的消除是不影响其余数字的相对位置的,

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

安吉D19 T3
https://blog.jerrylab.top/posts/problem/anji2026/D19/T3/
作者
Jerry
发布于
2026-08-20
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Jerry
Hello, I'm Jerry.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
80
分类
3
标签
35
总字数
89,198
运行时长
0
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.16.5
文章许可
CC BY-NC-SA 4.0