#P14030. [ICPC 2025 APC] Book Sorting

    ID: 13236 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>CF2300贪心数据结构动态规划二分队列排序

[ICPC 2025 APC] Book Sorting

题目描述

书架上有从左到右排列的 nn 本书。这些书的标签互不相同,为 11nn。从左数第 ii 本书的标签为 pip_i。你需要对书本进行排序,使得它们的标签从左到右按升序排列。每一步,你可以执行以下操作之一:

  • 选择两本相邻的书并交换它们。
  • 选择一本书并将其移动到最左边位置。
  • 选择一本书并将其移动到最右边位置。

计算排序所需的最少步数。

输入格式

输入的第一行包含一个整数 nn2n5000002\le n\le 500\,000)。第二行包含 nn 个两两不同的整数 p1,p2,,pnp_1, p_2, \ldots, p_n1pin1\le p_i\le n)。

输出格式

输出按标签从左到右升序排序所需的最少步数。

输入输出样例 #1

输入 #1

6
6 2 1 4 3 5

输出 #1

3

输入输出样例 #2

输入 #2

9
9 2 4 3 7 5 1 8 6

输出 #2

5

说明/提示

样例输入/输出 #1 的解释

你可以按顺序执行以下三步:交换标签为 2211 的书,交换标签为 4433 的书,然后将标签为 66 的书移动到最右边位置。

$\begin{aligned}6 \ 2 \ 1 \ 4 \ 3 \ 5 &\rightarrow 6 \ \mathbf{1} \ \mathbf{2} \ 4 \ 3 \ 5 \\&\rightarrow 6 \ 1 \ 2 \ \mathbf{3} \ \mathbf{4} \ 5 \\&\rightarrow 1 \ 2 \ 3 \ 4 \ 5 \ \mathbf{6}\end{aligned}$

可以证明两步或更少的步数不足以完成排序。