[PA 2022] Nawiasowe podziały

Luogu
IDLGP9266
Time6000ms
Memory512MB
DifficultyP7
2022PA(波兰)
**题目译自 [PA 2022](https://sio2.mimuw.edu.pl/c/pa-2022-1/dashboard/) Runda 5 [Nawiasowe podziały](https://sio2.mimuw.edu.pl/c/pa-2022-1/p/naw/)** 我确信你是知道括号序列的,但是以防万一,并且作为回顾,让我们回忆一下它的定义: - `()` 是一个合法的括号序列。 - 如果 $S$ 是一个合法的括号序列,那么 `(S)` 也是一个合法的括号序列。 - 如果 $S_1$ 和 $S_2$ 都是合法的括号序列,那么 $S_1S_2$ 也是一个合法的括号序列。 - 不符合上述规则的括号序列都不是合法的括号序列。 给出一个长度为 $n$ 且仅由字符 `(` 和 `)` 组成的字符串,以及一个数字 $k$,这个字符串不一定是合法的括号序列。你的任务是把它分成 $k$ 个非空段(每个字符必须恰好属于一段内),使得每段中是合法括号序列的子串个数之和最小。 ## Input 第一行两个整数 $n,k$,分别表示字符串长度和要分成的段数。 第二行一个长度为 $n$ 的字符串,保证字符串仅由 `(` 和 `)` 组成。 ## Output 输出一行一个整数,表示所有段中是合法括号序列的子串个数之和的最小值。 [samples] ## Note 对于 $100\%$ 的数据,满足: $1\le k\le n\le 10 ^ 5$。
Samples
Input #1
15 2
())(()())()(())
Output #1
6
Input #2
15 3
())(()())()(())
Output #2
3
API Response (JSON)
{
  "problem": {
    "name": "[PA 2022] Nawiasowe podziały",
    "description": {
      "content": "**题目译自 [PA 2022](https://sio2.mimuw.edu.pl/c/pa-2022-1/dashboard/) Runda 5 [Nawiasowe podziały](https://sio2.mimuw.edu.pl/c/pa-2022-1/p/naw/)** 我确信你是知道括号序列的,但是以防万一,并且作为回顾,让我们回忆一下它的定义: - `()` 是一个合法的括",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 6000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P7"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP9266"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "**题目译自 [PA 2022](https://sio2.mimuw.edu.pl/c/pa-2022-1/dashboard/) Runda 5 [Nawiasowe podziały](https://sio2.mimuw.edu.pl/c/pa-2022-1/p/naw/)**\n\n我确信你是知道括号序列的,但是以防万一,并且作为回顾,让我们回忆一下它的定义:\n\n- `()` 是一个合法的括...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments