C. Improve Inversions

    传统题 1000ms 256MiB

Improve Inversions

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

给定一个排列 P=(P1,P2,,PN)P=(P_1,P_2,\cdots,P_N)(即 (1,2,,N)(1,2,\cdots,N) 的某种排列),以及一个整数 KK

你可以执行以下操作零次或多次:

  • 选择两个整数 llrr1l<rN1 \leq l < r \leq N),且需满足以下所有条件:
    • KrlK \leq r-l(即两个位置的间隔至少为 KK
    • 在操作时,Pl>PrP_l > P_r(即左侧的数大于右侧的数)
    • 该数对 (l,r)(l,r) 之前从未被选择过
  • 然后交换 PlP_lPrP_r 的值

你的目标是最大化操作次数。请给出一种实现该目标的方案。

输入格式

  • 第一行:两个整数 NNKK
  • 第二行:排列 PPNN 个元素

输出格式

  • 第一行:操作次数 MM
  • 接下来 MM 行:每行两个整数 llrr,表示每次操作选择的位置对

示例

5 2
3 5 1 2 4
4
1 4
1 3
2 5
2 4
3 1
1 2 3
0

数据范围

  • 2N5002 \leq N \leq 500
  • 1KN11 \leq K \leq N-1
  • PP(1,2,,N)(1,2,\cdots,N) 的排列

说明

  1. 在样例1中,通过3次操作达到了最大可能操作次数
  2. 在样例2中,由于初始已是有序排列,无法进行任何操作

0616专项

未参加
状态
已结束
规则
OI
题目
4
开始于
2025-6-16 19:30
结束于
2025-6-16 19:42
持续时间
0.2 小时
主持人
参赛人数
36