AT_arc132_b.[ARC132B] Shift and Reverse

普及-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个 1,…,n1,\dots,n 的排列 p1,…,pnp_1,\dots,p_n。你可以对该排列进行如下两种操作,操作次数不限、顺序任意:

  • 将整个排列翻转。即,将 p1,p2,…,pnp_1,p_2,\dots,p_n 变为 pn,pn−1,…,p1p_n,p_{n-1},\dots,p_1。
  • 将首项移动到末尾。即,将 p1,p2,…,pnp_1,p_2,\dots,p_n 变为 p2,p3,…,pn,p1p_2,p_3,\dots,p_n,p_1。

请你求出将该排列变为升序排列所需的最小操作次数。保证对于给定的输入,使用上述操作一定可以将排列变为升序排列。

输入格式

输入从标准输入读入,格式如下:

nn p1p_1 p2p_2 …\dots pnp_n

输出格式

输出将排列变为升序排列所需的最小操作次数。

输入输出样例

  • 输入#1

    3
    1 3 2

    输出#1

    2
  • 输入#2

    2
    2 1

    输出#2

    1
  • 输入#3

    10
    2 3 4 5 6 7 8 9 10 1

    输出#3

    3
  • 输入#4

    12
    1 2 3 4 5 6 7 8 9 10 11 12

    输出#4

    0

说明/提示

限制条件

  • 2≤n≤1052 \leq n \leq 10^5
  • p1,p2,…,pnp_1,p_2,\dots,p_n 是 1,…,n1,\dots,n 的一个排列
  • 保证通过题目描述的操作一定可以将 p1,…,pnp_1,\dots,p_n 变为升序排列

样例解释 1

可以按如下方式用 22 次操作将排列变为升序排列:

  1. 将首项移动到末尾,排列变为 3,2,13,2,1。
  2. 将整个排列翻转,排列变为 1,2,31,2,3。
    无法在少于 22 次操作内完成,因此答案为 22。

样例解释 2

无论使用哪种操作,只需 11 次即可将排列变为升序排列。无法在少于 11 次操作内完成,因此答案为 11。

样例解释 3

可以按如下方式用 33 次操作将排列变为升序排列:

  1. 将整个排列翻转,排列变为 1,10,9,8,7,6,5,4,3,21,10,9,8,7,6,5,4,3,2。
  2. 将首项移动到末尾,排列变为 10,9,8,7,6,5,4,3,2,110,9,8,7,6,5,4,3,2,1。
  3. 将整个排列翻转,排列变为 1,2,3,4,5,6,7,8,9,101,2,3,4,5,6,7,8,9,10。
    无法在少于 33 次操作内完成,因此答案为 33。

样例解释 4

无需进行任何操作。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页