AT_arc132_b [ARC132B] Shift and Reverse
题目描述
给定一个 $1,\dots,n$ 的排列 $p_1,\dots,p_n$。你可以对该排列进行如下两种操作,操作次数不限、顺序任意:
- 将整个排列翻转。即,将 $p_1,p_2,\dots,p_n$ 变为 $p_n,p_{n-1},\dots,p_1$。
- 将首项移动到末尾。即,将 $p_1,p_2,\dots,p_n$ 变为 $p_2,p_3,\dots,p_n,p_1$。
请你求出将该排列变为升序排列所需的最小操作次数。保证对于给定的输入,使用上述操作一定可以将排列变为升序排列。
输入格式
输入从标准输入读入,格式如下:
> $n$ $p_1$ $p_2$ $\dots$ $p_n$
输出格式
输出将排列变为升序排列所需的最小操作次数。
说明/提示
## 限制条件
- $2 \leq n \leq 10^5$
- $p_1,p_2,\dots,p_n$ 是 $1,\dots,n$ 的一个排列
- 保证通过题目描述的操作一定可以将 $p_1,\dots,p_n$ 变为升序排列
## 样例解释 1
可以按如下方式用 $2$ 次操作将排列变为升序排列:
1. 将首项移动到末尾,排列变为 $3,2,1$。
2. 将整个排列翻转,排列变为 $1,2,3$。
无法在少于 $2$ 次操作内完成,因此答案为 $2$。
## 样例解释 2
无论使用哪种操作,只需 $1$ 次即可将排列变为升序排列。无法在少于 $1$ 次操作内完成,因此答案为 $1$。
## 样例解释 3
可以按如下方式用 $3$ 次操作将排列变为升序排列:
1. 将整个排列翻转,排列变为 $1,10,9,8,7,6,5,4,3,2$。
2. 将首项移动到末尾,排列变为 $10,9,8,7,6,5,4,3,2,1$。
3. 将整个排列翻转,排列变为 $1,2,3,4,5,6,7,8,9,10$。
无法在少于 $3$ 次操作内完成,因此答案为 $3$。
## 样例解释 4
无需进行任何操作。
由 ChatGPT 4.1 翻译