题解:CF2276B Replace and Compress
题目大意
给你一个 01 字符串,有两步操作:
- 反转 2 到
n-1 中至多一个字符,也就是说可以不转也可以转一个字符。 - 对字符串进行压缩,将一段连续的字符串压缩为其相应的字符。
问压缩完有多少种不同的字符串。
解题思路
可以分为三种情况:
- 不进行反转。
- 如果
s_{i-1} 与s_{i+1} 相等且不与s_{i} 相同,反转s_{i} 后这三个会合并在一起,就会出现一种新的情况。 - 如果
s_{i-1} 与s_{i} 与s_{i+1} ,反转s_{i} 后,s_{i-1} 与s_{i} 相等,不与s_{i} 相等,则会出现一种新情况。
所以最后判断能否有后两种情况即可。