AT_arc180_b.[ARC180B] Improve Inversions

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个 $ (1,2,\cdots,N) $ 的排列 $ P=(P_1,P_2,\cdots,P_N) $,以及一个整数 $ K $。

你可以进行如下操作 $ 0 $ 次或多次:

  • 选择整数 $ l,r (( 1\leq l<r\leq N $),但需满足以下所有条件:
    • $ K\leq r-l $。
    • 当前 $ P_l>P_r $。
    • 之前从未选择过同一组 $ (l,r) $。
  • 然后交换 $ P_l $ 和 $ P_r $ 的值。

你希望最大化操作次数。请给出一种实现方法。

输入格式

输入通过标准输入按以下格式给出:

$ N $ $ K $ $ P_1 $ $ P_2 $ $ \cdots $ $ P_N $

输出格式

请按以下格式输出答案:

$ m $ $ l_1 $ $ r_1 $ $ l_2 $ $ r_2 $ $ \vdots $ $ l_m $ $ r_m $

其中 $ m $ 是最大操作次数,$ l_i,r_i $ 是第 $ i $ 次操作选择的 $ l,r $。如果有多种方案,输出任意一种即可。

输入输出样例

  • 输入#1

    3 1
    3 2 1

    输出#1

    3
    2 3
    1 3
    1 2
  • 输入#2

    5 4
    1 4 3 2 5

    输出#2

    0
  • 输入#3

    4 2
    4 1 2 3

    输出#3

    2
    1 4
    1 3
  • 输入#4

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

    输出#4

    15
    3 8
    2 8
    3 10
    3 9
    1 8
    2 10
    2 9
    2 7
    1 10
    5 10
    1 9
    4 10
    4 9
    1 7
    1 6

说明/提示

限制条件

  • $ 2\leq N\leq 500 $
  • $ 1\leq K\leq N-1 $
  • $ (P_1,P_2,\cdots,P_N) $ 是 $ (1,2,\cdots,N) $ 的一个排列
  • 输入的所有值均为整数

样例解释 1

在本例中,最大操作次数为 $ 3 $。输出样例的操作过程如下:

  • 第 $ 1 $ 次操作:选择 $ (l,r)=(2,3) 。。 1\leq 3-2 ,, P_2>P_3 $,且未选过 $ (2,3) $,满足条件。交换 $ P_2,P_3 ,, P=(3,1,2) $。
  • 第 $ 2 $ 次操作:选择 $ (l,r)=(1,3) 。。 1\leq 3-1 ,, P_1>P_3 $,且未选过 $ (1,3) $,满足条件。交换 $ P_1,P_3 ,, P=(2,1,3) $。
  • 第 $ 3 $ 次操作:选择 $ (l,r)=(1,2) 。。 1\leq 2-1 ,, P_1>P_2 $,且未选过 $ (1,2) $,满足条件。交换 $ P_1,P_2 ,, P=(1,2,3) $。

由 ChatGPT 4.1 翻译

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

首页