1 条题解

  • 0
    @ 2026-9-9 9:20:13

    题解

    思路

    操作只会改变元素顺序,所以 AA 与 BB 中 1 的个数必须相同;若不同,答案为 No,若两序列本来相同则答案为 Yes。

    做法

    当 1 的个数至少为 22 时,可以反复把右侧的单个 1 与左侧的 10 或 01 交换,将任意序列整理成若干个 1 后接若干个 0 的标准形态,因此同样数量的 1 足以保证两个序列互相可达。

    只剩恰有一个 1 的情形。若这个 1 位于任一序列的端点,任何包含它的区间和都为 11,另一段不相交区间却不可能也含有 1,所以它无法被移动;在两序列不同的前提下答案为 No。若两个 1 都在内部,则可以交换和均为 00 的单个 0 与两个连续 0,逐步改变 1 左右两侧零的数量,从而把它移动到任意内部位置,答案为 Yes。

    复杂度

    每组数据只需统计 1 的数量并检查端点,时间复杂度为 O(N)O(N),额外空间复杂度为 O(1)O(1)。

    • 1

    信息

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