1 条题解

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

    题解

    思路

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

    做法

    否则至少需要执行一次操作,而最后一次操作会使环上某对相邻元素相等,所以若 BB 的环上没有相邻相等元素,答案必为 No。将 BB 中环上连续相等的元素压缩成一个,得到环序列 CC。一次操作只会让相邻两块中左块缩短、右块增长,因此不能改变保留下来的块在环上的相对次序;反过来,只要 CC 是 AA 的某个循环移位的子序列,就可以删去其余块,再利用 BB 中长度至少为 22 的块调整各块长度,最终得到 BB。

    因此枚举 AA 的 NN 个循环起点,对每个起点按顺序扫描恰好 NN 个元素,用双指针贪心匹配 CC:遇到与当前待匹配元素相同的值就向后移动指针。只要有一个起点能完整匹配 CC 就输出 Yes,否则输出 No。

    复杂度

    单组测试用例的时间复杂度为 O(N2)O(N^2),空间复杂度为 O(N)O(N)。

    • 1

    信息

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