问题 5405 --字符合并

5405: 字符合并

题目描述

有一个长度为 $n$ 的 `01` 串,你可以每次将相邻的 $k$ 个字符合并,得到一个新的字符并获得一定分数。得到的新字符和分数由这 $k$ 个字符确定。你需要求出你能获得的最大分数。

输入

第一行两个整数 $n,k$。 接下来一行长度为 $n$ 的 `01` 串,表示初始串。 接下来 $2^k$ 行,每行一个字符 $c_i$ 和一个整数 $w_i$, $c_i$ 表示长度为 $n$ 的 `01` 串连成二进制后按从小到大顺序得到的第 $i$ 种合并方案得到的新字符,$w_i$ 表示对应的第 $i$ 种方案对应获得的分数。

输出

输出一个整数表示答案。

样例输入输出

输入#1 复制
3 2
101
1 10
1 10
0 20
1 30
输出#1 复制
40

提示

【样例解释】 第 $3$ 行到第 $6$ 行表示长度为 $2$ 的 $4$ 种 `01` 串的合并方案。$00\to 1$,得 $10$ 分;$01\to1$,得 $10$ 分;$10\to 0$,得 $20$ 分;$11\to 1$,得 $30$ 分。 【数据范围】 对于 $100\%$ 的数据,满足 $1 \leq n \leq 300$,$0\leq c_i \leq 1$,$2\leq k \leq 8$,$1\leq w_i \leq 10^9$。
序号 标题 作者 发表时间 费用 订购数 操作