CF1215E.Marbles
提高+/省选-
通过率:0%
时间限制:4.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Monocarp has arranged n colored marbles in a row. The color of the i-th marble is ai. Monocarp likes ordered things, so he wants to rearrange marbles in such a way that all marbles of the same color form a contiguos segment (and there is only one such segment for each color).
In other words, Monocarp wants to rearrange marbles so that, for every color j, if the leftmost marble of color j is l-th in the row, and the rightmost marble of this color has position r in the row, then every marble from l to r has color j.
To achieve his goal, Monocarp can do the following operation any number of times: choose two neighbouring marbles, and swap them.
You have to calculate the minimum number of operations Monocarp has to perform to rearrange the marbles. Note that the order of segments of marbles having equal color does not matter, it is only required that, for every color, all the marbles of this color form exactly one contiguous segment.
莫诺卡普将 n 颗彩色弹珠排成一行。第 i 颗弹珠的颜色为 ai。莫诺卡普喜欢有序的事物,因此他希望重新排列这些弹珠,使得每种颜色的所有弹珠都构成一个连续的段(且每种颜色仅存在唯一这样一个段)。
换言之,莫诺卡普希望重排弹珠,使得:对任意颜色 j,若颜色 j 的最左端弹珠位于行中第 l 位,最右端弹珠位于行中第 r 位,则从位置 l 到位置 r 的所有弹珠颜色均为 j。
为达成目标,莫诺卡普可执行以下操作任意多次:选择两个相邻的弹珠,并交换它们的位置。
你需要计算莫诺卡普为完成该重排所需的最少操作次数。注意:各同色段之间的相对顺序无关紧要;唯一要求是:对每种颜色,其所有弹珠必须恰好构成一个连续段。
输入格式
The first line contains one integer n (2≤n≤4⋅105) — the number of marbles.
The second line contains an integer sequence a1,a2,…,an (1≤ai≤20), where ai is the color of the i-th marble.
第一行包含一个整数 n (2≤n≤4⋅105) —— 玻璃珠的数量。
第二行包含一个整数序列 a1,a2,…,an (1≤ai≤20),其中 ai 表示第 i 颗玻璃珠的颜色。
输出格式
Print the minimum number of operations Monocarp has to perform to achieve his goal.
输出 Monocarp 为实现其目标所需的最少操作次数。
输入输出样例
输入#1
7 3 4 2 3 4 2 2
输出#1
3
输入#2
5 20 1 14 10 2
输出#2
0
输入#3
13 5 5 4 4 3 5 7 6 5 4 4 6 5
输出#3
21
说明/提示
In the first example three operations are enough. Firstly, Monocarp should swap the third and the fourth marbles, so the sequence of colors is [3,4,3,2,4,2,2]. Then Monocarp should swap the second and the third marbles, so the sequence is [3,3,4,2,4,2,2]. And finally, Monocarp should swap the fourth and the fifth marbles, so the sequence is [3,3,4,4,2,2,2].
In the second example there's no need to perform any operations.
在第一个例子中,三次操作就足够了。首先,Monocarp 应交换第三颗与第四颗弹珠,使颜色序列为 [3,4,3,2,4,2,2];接着,Monocarp 应交换第二颗与第三颗弹珠,使序列变为 [3,3,4,2,4,2,2];最后,Monocarp 应交换第四颗与第五颗弹珠,使序列变为 [3,3,4,4,2,2,2]。
在第二个例子中,无需执行任何操作。
输入解题思路,AI测评打分。不知道怎么写?