AT_abc261_f [ABC261F] Sorting Color Balls
题目描述
有 $N$ 个球从左到右排成一列。第 $i$ 个球的颜色为 $C_i$,上面写着整数 $X_i$。
高桥君的目标是将球重新排列,使得从左到右看时,球上写的数字是非递减的。换句话说,高桥君的目标是,对于任意 $1\leq i\leq N-1$,第 $i+1$ 个球上写的数字不小于第 $i$ 个球上写的数字。
为达成目标,高桥君可以进行任意多次(可以为 $0$ 次)如下操作:
> 选择满足 $1\leq i\leq N-1$ 的整数 $i$。
> 如果第 $i$ 个球和第 $i+1$ 个球的颜色不同,则需要支付 $1$ 的代价(如果颜色相同则无需支付代价)。
> 交换第 $i$ 个球和第 $i+1$ 个球的位置。
请你求出高桥君为达成目标所需支付的最小总代价。
输入格式
输入按以下格式从标准输入给出。
> $N$
> $C_1\ C_2\ \ldots\ C_N$
> $X_1\ X_2\ \ldots\ X_N$
输出格式
输出高桥君为达成目标所需支付的最小总代价。
说明/提示
## 限制条件
- $2\leq N\leq 3\times 10^5$
- $1\leq C_i\leq N$
- $1\leq X_i\leq N$
- 输入均为整数
## 样例解释 1
用 $(颜色, 数字)$ 表示每个球的信息。初始状态为 $(1,3)$、$(5,2)$、$(2,1)$、$(2,2)$、$(1,1)$。例如,高桥君可以按如下方式操作:
- 交换第 $1$ 个球(颜色 $1$)和第 $2$ 个球(颜色 $5$)。球的顺序变为 $(5,2)$、$(1,3)$、$(2,1)$、$(2,2)$、$(1,1)$。
- 交换第 $2$ 个球(颜色 $1$)和第 $3$ 个球(颜色 $2$)。球的顺序变为 $(5,2)$、$(2,1)$、$(1,3)$、$(2,2)$、$(1,1)$。
- 交换第 $3$ 个球(颜色 $1$)和第 $4$ 个球(颜色 $2$)。球的顺序变为 $(5,2)$、$(2,1)$、$(2,2)$、$(1,3)$、$(1,1)$。
- 交换第 $4$ 个球(颜色 $1$)和第 $5$ 个球(颜色 $1$)。球的顺序变为 $(5,2)$、$(2,1)$、$(2,2)$、$(1,1)$、$(1,3)$。
- 交换第 $3$ 个球(颜色 $2$)和第 $4$ 个球(颜色 $1$)。球的顺序变为 $(5,2)$、$(2,1)$、$(1,1)$、$(2,2)$、$(1,3)$。
- 交换第 $1$ 个球(颜色 $5$)和第 $2$ 个球(颜色 $2$)。球的顺序变为 $(2,1)$、$(5,2)$、$(1,1)$、$(2,2)$、$(1,3)$。
- 交换第 $2$ 个球(颜色 $5$)和第 $3$ 个球(颜色 $1$)。球的顺序变为 $(2,1)$、$(1,1)$、$(5,2)$、$(2,2)$、$(1,3)$。
在最后一次操作后,球上写的数字依次为 $1,1,2,2,3$,高桥君达成了目标。第 $1,2,3,5,6,7$ 次操作各需支付 $1$ 的代价,因此总代价为 $6$,这是最小值。注意第 $4$ 次操作时,交换的两个球颜色相同,因此不需要支付代价。
## 样例解释 2
所有球的颜色都相同,因此交换球时不需要支付任何代价。
## 样例解释 3
高桥君无需进行任何操作即可达成目标。
由 ChatGPT 4.1 翻译