4092: 「HAOI2016」字符合并

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

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

输入

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

输出

输出一个整数,表示答案。

样例输入 复制

3 2
101
1 10
1 10
0 20
1 30

样例输出 复制

40

提示


数据范围:$ 1 \leq n \leq 300, \ 0 \leq c_i \leq 1, 1\le w_i\le 10^9 , \ 2\le k \leq 8$

来源/分类