1111

· · 个人记录

t1

二分答案,贪心匹配(当前如果匹配,一定是上一个匹配的组+1)

t2

考虑预处理,将奇数位反转。 这样限制变成了ab->bb , ba -> aa

考虑相邻字符不同的位置:

X 能转换为 Y 当:

使用线段树维护数组:

d[k] = \sum_{i=1}^k a[i] - \sum_{i=1}^k b[i]

题目条件等价于:

当翻转原始字符串的第 p 个字符时:

更新X

  1. 翻转 a[p]
  2. 更新线段树:
    • 翻转 a[p]:对区间 [1, p]\Delta\Delta = 1 如果 a[p] \to 1 ,否则为-1
    • 翻转 a[p+1]
  3. 更新 caca \leftarrow ca \oplus 1(如果 p=n

更新Y: 同理,翻转同时维护 b[p]b[p+1]

每次更新后,检查: