题解 CF1320D 【Reachable Strings】

Owen_codeisking

2020-09-14 12:51:33

Solution

提供一个差不多的解法。 注意到操作是可逆的,所以我们只要找到一个等价类让两者相等,两者就一定相等。 所以我们就可以找到等价类中字典序最小的串进行比较,那么只需要执行 $110\rightarrow 011$ 这个操作。 可以发现,$11$ 这种串一定可以移到串的末尾,而且移到末尾可以视为删除 $11$。 接下来就可以用线段树维护左右边界的数,目前的长度,哈希的值,在上传的时候把 $11$ 删掉。 时间 $\mathcal{O}(n\log n)$。 代码使用了双哈希,所以比较慢。 [code](https://codeforces.com/contest/1320/submission/92760906)