Допустим, у нас есть два массива m
и n
, содержащие символы из набора a, b, c , d, e
.Предположим, что с каждым персонажем в наборе связана стоимость, рассмотрим стоимость, равную a=1, b=3, c=4, d=5, e=7
.
, например
m = ['a', 'b', 'c', 'd', 'd', 'e', 'a']
n = ['b', 'b', 'b', 'a', 'c', 'e', 'd']
Предположим, мы хотели бы объединить m
и n
для формирования большего массива s
.
Примером массива s
может быть
s = ['a', 'b', 'c', 'd', 'd', 'e', 'a', 'b', 'b', 'b', 'a', 'c', 'e', 'd']
или
s = ['b', 'a', 'd', 'd', 'd', 'b', 'e', 'c', 'b', 'a', 'b', 'a', 'c', 'e']
Если есть два илиболее идентичные символы, смежные друг с другом, применяются к штрафу, равному: number of adjacent characters of the same type * the cost for that character
.Рассмотрим второй пример для s
выше, который содержит подмассив ['d', 'd', 'd']
.В этом случае будет применяться штраф 3*5
, поскольку стоимость, связанная с d
, равна 5
, а количество повторений d
равно 3
.
. Разработайте алгоритм динамического программирования, которыйминимизирует стоимость, связанную с s
.
У кого-нибудь есть какие-либо ресурсы, документы или алгоритмы, которыми они могли бы поделиться, чтобы помочь мне указать верное направление?