Используйте динамическое программирование для объединения двух массивов так, чтобы количество повторений одного и того же элемента было минимальным - PullRequest
1 голос
/ 15 апреля 2019

Допустим, у нас есть два массива 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.

У кого-нибудь есть какие-либо ресурсы, документы или алгоритмы, которыми они могли бы поделиться, чтобы помочь мне указать верное направление?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...