P9717 [EC Final 2022] Binary String
咕值要掉没了,水点题解。
很炫酷的题。
以下的 “段” 均指长度大于
- 对于一个
0 段,如果其左边不和某个1 段相邻,变换后会整体往左移动一位。 - 对于一个
1 段,如果其右边不和某个0 段相邻,变换后会整体往右移动一位。 - 如果一个
0 段接在一个1 段后面,那么相当于两个段相撞,变换后长度都会减1 。
这个过程会一直执行直到不存在
考虑怎么求出最后这个串。不妨假设
注意到这个过程和括号匹配很像阿,考虑如果不是环而是序列的话,实际上我们可以直接模拟一遍求出每个
那考虑规避掉这种情况。根据 Raney 引理,我们总是能找到⼀个起点位置,使得每个前缀中