P9805 [POI 2022/2023 R1] ply
题目背景
题目译自 [POI2022~2023R1 ply](https://sio2.mimuw.edu.pl/c/oi30-1/p/ply/)。
题目描述
定义“合法括号串”及其深度如下:
- 空串是一个合法括号串,深度为 $0$。
- 如果 $w$ 是一个合法括号串,深度为 $h$,则 $(w)$ 也是一个合法括号串,深度为 $h+1$。
- 如果 $w_1$ 和 $w_2$ 都是合法括号串,深度分别为 $h_1$ 和 $h_2$,则 $w_1w_2$ 也是一个合法括号串,深度为 $\max(h_1,h_2)$。
定义翻转一个字符为:
- 如果当前字符为 `(`,修改为 `)`。
- 如果当前字符为 `)`,修改为 `(`。
你需要通过翻转 $s$ 当中某些字符使得深度不超过 $H$,求最小操作次数。
输入格式
第一行两个数字 $n \ (2 \leq n \leq 10^6)$ 和 $H \ (1 \leq H \leq \frac{n}{2})$,分别表示 $|s|$ 和要求修改后不超过的深度。
第二行一个字符串 $s$,表示原来的括号串。
输出格式
输出最小修改次数。
说明/提示
对于样例,可以修改为 `(()()())`,这样深度为 $2$。
子任务分配如下:
| 子任务编号 | 特殊性质 | 分值 |
| :-----------: | :-----------: | :-----------: |
| $1$ | $n \leq 20$ | $20$ |
| $2$ | $n \leq 3000$ | $40$ |
| $3$ | $n \leq 10^6$ 且 $H = h-1$ | $20$ |
| $4$ | $n \leq 10^6$ | $20$ |
注:$h$ 为输入的括号串的深度。
本题中,子任务 $0$ 为样例。