1 条题解

  • 0
    @ 2026-9-9 9:18:33

    题解

    思路

    对排列 QQ,设前 kk 个位置已经满足 Qi=iQ_i=i。

    做法

    若 k=Nk=N,它已经是字典序最小的排列,最优操作不会改变它;否则数字 k+1k+1 必定出现在后方,把从位置 k+1k+1 到该数字所在位置的区间反转,能够让正确前缀增长,而任何不能做到这一点的反转所得排列都更大,所以最优反转唯一由这个位置决定。

    反过来计数。设 KK 是 PP 的最长正确前缀长度。通过反转 PP 的区间 [l,r][l,r] 构造出的 QQ 能以该区间作为最优反转还原为 PP,恰好要求 1≤l≤K1\le l\le K 且 l<r≤Nl<r\le N,因此数量为 ∑l=1K(N−l)=KN−K(K+1)/2\sum_{l=1}^{K}(N-l)=KN-K(K+1)/2。当 K=NK=N 时,恒等排列自身还要额外计入一次。

    复杂度

    逐个测试扫描 KK 即可,总时间复杂度为 O(∑N)O(\sum N),除输入数组外只需 O(1)O(1) 额外空间。

    • 1

    信息

    ID
    1646
    时间
    2000ms
    内存
    1024MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者