A27806.彩球排序

普及+/提高

通过率:0%

时间限制:3.00s

内存限制:512MB

题目描述

时间限制:3000ms
内存限制:512MB

NN 个球从左到右排列。第 ii 个球的颜色是颜色 CiC_i,并且上面写有一个整数 XiX_i

小码君想要对这些球排序,使得球上的整数从左到右是非递减的。
换句话说,他的目标是:对于任意 i (1iN1)i\ (1\leq i\leq N-1),从左数第 (i+1)(i+1) 个球上的数字大于或等于从左数第 ii 个球上的数字。

为此,小码君可以重复执行以下操作任意次(可能为零次):

  1. 选择一个整数 i (1iN1)i\ (1\leq i\leq N-1)
  2. 如果从左数第 ii 个球和第 (i+1)(i+1) 个球的颜色不同,则支付 11 元钱。 (如果颜色相同,则不需要支付费用)
  3. 交换从左数第 ii 个球和第 (i+1)(i+1) 个球的位置。

求小码君为了实现目标需要支付的最小总费用。

数据范围\large{数据范围}

  • 2N3×1052 \leq N \leq 3\times 10^5
  • 1CiN1\leq C_i\leq N
  • 1XiN1\leq X_i\leq N
  • 所有输入数据均为整数。

输入格式

对于每个测试文件格式如下:

N\tt{N}
C1 C2  CN\tt{C_1\ C_2\ \ldots\ C_N}
X1 X2  XN\tt{X_1\ X_2\ \ldots\ X_N}

输出格式

对于每个测试文件输出为实现目标所需的最低总成本。

输入输出样例

  • 输入#1

    5
    1 5 2 2 1
    3 2 1 2 1

    输出#1

    6
  • 输入#2

    3
    1 1 1
    3 2 1

    输出#2

    0
  • 输入#3

    3
    3 1 2
    1 1 2

    输出#3

    0

说明/提示

样例 11
我们使用 (( 颜色 ,, 整数 )) 的二元组来表示一个球。
球的初始顺序为 (1,3)(1,3)(5,2)(5,2)(2,1)(2,1)(2,2)(2,2)(1,1)(1,1)。以下为操作步骤:

  • 交换第 11 个球(颜色 11)和第 22 个球(颜色 55)。现在球的顺序是 (5,2)(5,2)(1,3)(1,3)(2,1)(2,1)(2,2)(2,2)(1,1)(1,1)
  • 交换第 22 个球(颜色 11)和第 33 个球(颜色 22)。现在球的顺序是 (5,2)(5,2)(2,1)(2,1)(1,3)(1,3)(2,2)(2,2)(1,1)(1,1)
  • 交换第 33 个球(颜色 11)和第 44 个球(颜色 22)。现在球的顺序是 (5,2)(5,2)(2,1)(2,1)(2,2)(2,2)(1,3)(1,3)(1,1)(1,1)
  • 交换第 44 个球(颜色 11)和第 55 个球(颜色 11)。现在球的顺序是 (5,2)(5,2)(2,1)(2,1)(2,2)(2,2)(1,1)(1,1)(1,3)(1,3)
  • 交换第 33 个球(颜色 22)和第 44 个球(颜色 11)。现在球的顺序是 (5,2)(5,2)(2,1)(2,1)(1,1)(1,1)(2,2)(2,2)(1,3)(1,3)
  • 交换第 11 个球(颜色 55)和第 22 个球(颜色 22)。现在球的顺序是 (2,1)(2,1)(5,2)(5,2)(1,1)(1,1)(2,2)(2,2)(1,3)(1,3)
  • 交换第 22 个球(颜色 55)和第 33 个球(颜色 11)。现在球的顺序是 (2,1)(2,1)(1,1)(1,1)(5,2)(5,2)(2,2)(2,2)(1,3)(1,3)

最后一次操作后,球上的数字从左到右依次为 1,1,2,2,31,1,2,2,3

1122335566 和第 77 次操作各产生 11 元的费用,总花费为 66,即最小花费。
需要注意的是,第 44 次操作不会产生费用,因为两个球的颜色都是 11

样例 22
所有球的颜色相同,因此交换球不产生任何费用。

样例 33
所有球上的数字已经按照非递减顺序排列,无需任何操作。

首页