1 条题解

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

    题解

    思路

    若 A=BA=B,答案显然为 Yes。

    做法

    当 K=1K=1 时,一次操作只能扩张相邻的同值段,所以 AA 的游程压缩序列只能删除若干项而不能新增;反之,可以依次扩张保留下来的段。因此可行当且仅当 BB 的游程压缩序列是 AA 的游程压缩序列的子序列。

    当 K≥2K\ge2 且 A≠BA\ne B 时,逆向看操作:若 Bi=BjB_i=B_j 且 ∣i−j∣≤K|i-j|\le K,就能把其中一个位置改成任意通配值;借助通配值可以交换相邻元素并逐步消去多余副本。于是可行的充要条件是 BB 的每个值都在 AA 中出现,并且 BB 中存在距离不超过 KK 的一对相等值。

    复杂度

    用最近出现位置检查重复对,并用布尔数组检查值域,时间复杂度为 O(N)O(N),空间复杂度为 O(N)O(N)。

    • 1

    信息

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