【发布时间】:2015-06-18 02:18:55
【问题描述】:
谁能帮我解决这个问题? 我们有一个来自某些特定 aplhabet 的 MxN 个字符的网格,例如 S={A,B,C,D}。 光标位于 (1,1) 位置,我们可以使用箭头键移动光标,up、down、left、右,然后按回车选择角色(就像在旧游戏中选择昵称)。给定来自 aplhabet S 的一些输入字符串,它们加权相同的最小操作成本是多少(例如,向右移动与选择字符的成本相同)?矩阵中也可以多次出现同一个字符。
例子:
字母 S={A,B,C,D}
矩阵:
ABDC
CADB
ABAA
并输入字符串ADCABDA。
我不完整的解决方案是: 构造有向网格图并找到从1,1到结束字符的最短路径,中间字符类似于TSP中的城镇,并使用动态规划从最优子路径构造最优最终路径。问题是你可以用许多可能的结束字符结束,我完全不知道如何从更小的最优子路径构造更长的最优路径。
【问题讨论】:
标签: math graph dynamic-programming shortest-path traveling-salesman