#60. Moortal Cowmbat

0

Moortal Cowmbat

Moortal Cowmbat

题目描述

Bessie 已经玩热门格斗游戏 Moortal Cowmbat 很久了。然而,游戏开发者最近推出了一次更新,迫使 Bessie 改变她的游戏风格。 游戏使用 MM 个按钮,分别用前 MM 个小写字母标记(1≤M≤261 \leq M \leq 26)。Bessie 最喜欢的连招是在游戏中一段长度为 NN 的按钮按压字符串 SS(1≤N≤1051 \leq N \leq 10^5)。然而,由于最新的更新,现在每个连招都必须由一系列“连段(streaks)”组成,其中连段被定义为:同一个按钮连续按下至少 KK 次(1≤K≤N1 \leq K \leq N)。Bessie 想修改她最喜欢的连招,生成一个长度仍为 NN 的新连招,但必须由按钮连段构成以满足规则变化。 在连招的任意具体位置上,将按钮 ii 改为按钮 jj 需要 aija_{ij} 天训练时间(即把 SS 中某个特定字母从 ii 改成 jj 的代价为 aija_{ij})。注意,从按钮 ii 切换到某个中间按钮 kk,再从按钮 kk 切换到按钮 jj,可能比直接从 ii 切换到 jj 更省时间(更一般地说,可能存在一条以 ii 开始、以 jj 结束的变更路径,使得最终从按钮 ii 变为按钮 jj 的总代价最小)。 请帮助 Bessie 确定,为了创建一个满足新要求的连招,她所需的最少天数。

输入格式

第一行输入包含 NN、MM 和 KK。 第二行包含字符串 SS。 最后 MM 行包含一个 M×MM\times M 的矩阵 aija_{ij},其中 aija_{ij} 是范围 0…10000 \ldots 1000 内的整数,并且对所有 ii 都有 aii=0a_{ii} = 0。

输出格式

输出一个整数,表示 Bessie 将她的连招改成满足新要求的连招所需的最少天数。

5 5 2
abcde
0 1 4 4 4
2 0 4 4 4
6 5 0 3 2
5 5 5 0 4
3 7 0 5 0
5

提示

SCORING: 测试点 2-4 满足 N≤1000,K≤50.N\le 1000, K\le 50. 测试点 5-8 满足 N≤30,000,K≤50.N\le 30,000, K\le 50.

本例中的最优解是将 a 变为 b,将 d 变为 e,然后将两个 e 都变为 c。这样总共需要 1+4+0+0=51+4+0+0=5 天,最终连招字符串为 bbccc。

题目来源:Eric Wei

标签: USACO|2019|Gold

来源

USACO|2019|Gold