#HK5278. 「UOI 2019 Stage 4 Day2」科扎克·武斯与书籍

「UOI 2019 Stage 4 Day2」科扎克·武斯与书籍

题目描述

题目译自 Ukrainian Olympiads in Informatics 2019 Stage 4 Day2 T3. Кольорові книги

今天,科扎克·武斯发现了一个书架。书架上总共有 nn 本书,排成一排。每本书上写有一个整数 aia_i。这些数字是 [1,n][1, n] 区间内的不同整数,换句话说,aa 是一个排列。同时,每本书有一个颜色,第 ii 本书的颜色为 cic_i

科扎克想要整理书架,使书籍按书上数字的升序排列,即数字为 11 的书排在第一位,接下来是 22,以此类推。一次操作中,他可以交换任意两本不同颜色的书的位置。请帮助武斯以最少的操作次数完成这个任务。保证任务一定有解。

输入格式

第一行包含一个整数 nn (1n105)(1 \leq n \leq 10^{5}),表示书的总数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n (1ain)(1 \leq a_i \leq n),表示每本书上写的数字。保证所有数字两两不同。

第三行包含 nn 个整数 c1,c2,,cnc_1, c_2, \ldots, c_n (1cin)(1 \leq c_i \leq n),表示每本书的颜色。

保证总是存在解。

输出格式

第一行输出一个数字 kk,表示操作次数。

接下来的 kk 行,每行输出两个整数,表示需要交换位置的两本书的编号。

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

5
2 4
7 4
2 7
1 2
1 5

2
2 1
1 2

1
1 2

数据范围与提示

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

子任务 分值 附加限制与得分规则
11 5050 n1000n \leq 1000
22 1010 1000<n1051000 < n \leq 10^{5},所有颜色均不同
33 4040 无附加限制

对于子任务 11,设 mm 为某个测试点中排序书籍所需的最小操作次数,kk 为你使用的操作次数,则该测试点得分为:

  • k=mk = m,得 5050 分;
  • m<k3nm < k \leq 3n,得 $10 + \lfloor 30 - 30 \cdot \frac{k-m}{3n-m} \rfloor$ 分;
  • k>3nk > 3n,得 00 分。