#P1562. 翻转(reverse)
翻转(reverse)
题目描述
小 C 有一个长度为 的 01 串 。
小 C 定义一次操作是选择串 的一个后缀将其 01 翻转(0 变成 1,1 变成 0)。
小 C 想要知道最少需要几次操作可以使得串 单调不降(即不存在 ,满足 ,)。
输入格式
输入的第一行包含一个整数 。
接下来一行包含长度为 的 01 串,表示串 。
输出格式
输出共一行,包含一个整数,表示最小操作次数。
样例输入 #1
3
101
样例输出 #1
2
样例输入 #2
7
0101010
样例输出 #2
5
数据范围
样例 1 解释
第一次操作:对整个串进行翻转,串 变为 010。
第二次操作:翻转后缀 ,串 变为 011。
可以证明不存在操作次数更小的解,当然可能存在其他操作次数为 的操作方案。
- 对于 的数据,保证 。
- 对于 的数据,保证 。
- 对于 的数据,保证 。