3019 - 回文

约翰在每头牛身上都安装了一个电子身份标签,当牛通过扫描仪时,系统会读取这个标签。每个id标签都是从 n(1\le n \le 26)个小写字母的字母表中提取的长度为 m(1 \le m \le 2000) 的字符串。牛有时试图通过倒退来欺骗系统。当一头牛的id标签是“abcba”时,不管它朝哪个方向走,都会读取相同的id标签,而一头牛的id标签是“abcb”时,可能会被读取两个不同的id(abcb和bcba)。约翰想修改牛的id标签,这样无论牛从哪个方向走过,都可以读到相同的内容。例如,“abcb”可以通过在末尾添加“a”,形成“abcba”,这样的id标签就是回文(向前和向后读取都是相同的内容)。将id标签更改为回文的其他方法包括将“bcb”添加到开头,产生id标签“bcbabcb”;或删除字符“a”,产生id标签“bcb”。可以在字符串中的任何位置都添加或删除字符,从而生成比原始字符串长或短的字符串。给定牛的id标签及添加、删除每个字符的成本(0 \le 成本 \le 10000),求解使id标签满足回文的最小成本。一个空的id标签被认为已满足要求。只有包含相关成本的字母才可以被添加到字符串中。

输入

1 行包含两个整数 nm 。第 2 行包含 m 个字符,表示初始的id标签。第 3...n+2 行的每一行都包含一个字符和两个整数,分别表示添加和删除该字符的成本。

输出

单行输出更改给定标签为回文的最小成本。

样例

输入

3 4
abcb
a 1000 1100
b 350 700
c 200 800

输出

900

提示

提示:若在末尾添加一个“a”,则得到“abcba”,成本是1000;若把开头的“a”删掉,则得到“bcb”,成本是1100;若在开头插入“bcb”,则得到“bcbabcb”,成本是350+200+350=900,这是最小成本。

来源

奇遇编程

题目参数

时间限制 1 秒
内存限制 32 MB
提交次数 0
通过人数 0
统计

上一题 下一题