4363: T2 翻转(reverse)
内存限制:512 MB
时间限制:2.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
## T2 翻转(reverse)
### 题目描述
小 C 有一个长度为 $n$ 的 `01` 串 $S$。
小 C 定义一次操作是选择串 $S$ 的一个后缀将其 `01` 翻转(`0` 变成 `1`,`1` 变成 `0`)。
小 C 想要知道最少需要几次操作可以使得串 $S$ 单调不降(即不存在 $1\le i\lt j\le n$,满足 $S_i=1$,$S_j=0$)。
输入
### 输入格式
输入的第一行包含一个整数 $n$。
接下来一行包含长度为 $n$ 的 `01` 串,表示串 $S$。
输出
### 输出格式
输出共一行,包含一个整数,表示最小操作次数。
样例输入 复制
3
101
样例输出 复制
2
提示
### 样例 1 输入
```
3
101
```
### 样例 1 输出
```
2
```
### 样例 1 解释
第一次操作:对整个串进行翻转,串 $S$ 变为 `010`。
第二次操作:翻转后缀 $[3,3]$,串 $S$ 变为 `011`。
可以证明不存在操作次数更小的解,当然可能存在其他操作次数为 $2$ 的操作方案。
### 样例 2 输入
```
7
0101010
```
### 样例 2 输出
```
5
```
其余样例见下发文件。
### 数据规模与约定
- 对于 $30\%$ 的数据,保证 $n\le 20$。
- 对于 $60\%$ 的数据,保证 $n\le 100$。
- 对于 $100\%$ 的数据,保证 $1\le n\le 10^5$。