Featured image of post Codeforces Round #1019(Div.2)

Codeforces Round #1019(Div.2)

B

题目大意:给定一个长度为 $n$ 的二进制字符串 $s$ 和一个带有两个按钮(0 和 1)的打字机。初始时,你的手指放在按钮 0 上。你可以执行以下两种操作: 1. 按下当前手指所在的按钮。这将打出该按钮上的字符。2. 将手指移动到另一个按钮。如果手指在按钮 0 上,则移动到按钮 1,反之亦然。二进制字符串的代价定义为输入整个字符串所需的最少操作次数。在输入之前,你可以选择最多反转 $s$ 的一个子串 $^{\text{∗}}$。

数据范围:$1 \le t \le 10^4$,$1 \le n \le 2 \cdot 10^5$,$\sum n \le 2 \cdot 10^5$。

思路: