#P2019. 2024.9.7-DD-第2题-小塔的零花钱

2024.9.7-DD-第2题-小塔的零花钱

题目内容

小塔有一个长度为nn,由前kk个小写字母组成的字符串(保证nn为偶数)。

小美想在小塔睡觉的时候把这个字符串用小塔的零花钱消除干净。小美每次可以选择该串的两个相邻的字符删除,删除后将串拼上,并花掉小塔一定数量的零花钱。

若某一次删除的相邻两个字符从左到右分别是a和b,则将花掉小塔costcost(a,ba,b)块钱。小美希望他花掉的零花钱尽可能多,帮帮小美。

输入描述

第一行有两个整数n,kn,k(1<=n<=500,1<=k<=261<=n<=500,1<=k<=26),分别代表小塔的字符串长度与字符串中的字符种类数(保证nn为偶数且串的内容仅由前kk个小写英文字母组成)。

接下来k行给出了一个kkk*k的由整数构成的矩阵。矩阵中第ii行第jj列的元素代表消除相邻的第ii个字母和第jj个字母所能花掉的钱数。

最后一行有一个长度为nn的字符串,代表小塔的字符串。

输出描述

输出一个值,代表小美最多能花掉小塔多少零花钱。

样例1

输入

4 3
0 1 3
2 0 0
0 0 0
abac

输出

5

说明

如样例中先消除abab再消除acac则可花掉1+3=41+3=4元钱,先消除baba再消除acac则可花掉2+3=52+3=5元钱