#P3736. 字符合并(Character Merging)
0
字符合并(Character Merging)
字符合并(Character Merging)
题目描述
有一个长度为 的 串,你可以每次将相邻的 个字符合并,得到一个新的字符并获得一定分数。
得到的新字符和分数由这 个字符确定。你需要求出你能获得的最大分数。
输入格式
输入的第一行是两个整数,分别代表字符串长度 和参数 。
输入的第二行有 个用空格隔开的非零即一的字符,第 个字符表示初始串的第 个字符。
第 到第 行,每行有一个字符和一个整数,第 行的字符 表示长度为 的 串连成二进制后按从小到大顺序得到的第 种合并方案得到的新字符, 整数 表示对应的第 种方案对应获得的分数。
输出格式
输出一个整数表示答案。
样例输入 #1
3 2
1 0 1
1 10
1 10
0 20
1 30
样例输出 #1
40
数据范围
数据规模与约定
对于 的数据,保证:
- ,。
- ,。
知识点与难度
本题涉及的知识点从属于 NOI,难度(CF Rating):2300。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1 | 样例 |
| 1 | 20 | 2~8 | 小规模 n≤15,k≤4 / 特殊: k=2相邻两两合并 / 特殊: n<k无法合并输出0 |
| 2 | 15 | 9~11 | Hack: (n-1)%(k-1)!=0最终剩余多字符 / Hack: w_i=10^9防32位溢出 / Hack: 全0或全1同质串 |
| 3 | 30 | 12~20 | 中规模 n≤120,k≤6 / 大规模 n=300,k=8 区间状压DP压力 |
| 4 | 25 | 21~25 | 随机 1≤n≤300,2≤k≤8 回归 |
出处:原题链接