Упражнение по динамическому программированию для разрезания строки

Я работал над следующей задачей из этой книги .

Определенный язык обработки строк-предлагает примитивную операцию, которая разбивает строку на две части. Поскольку эта операция включает копирование исходной строки, для строки длины n требуется n единиц времени, независимо от места разреза. Предположим теперь, что вы хотите разбить строку на множество частей. Порядок, в котором делаются перерывы, может повлиять на общее время работы. Например, если вы хотите вырезать строку из 20-символов в позициях 3 и 10, то выполнение первого вырезания в позиции 3 потребует общей стоимости 20+17=37, в то время как выполнение первой позиции 10 будет стоить лучше 20+10=30.

Мне нужен алгоритм динамического программирования, который по заданным m разрезам находит минимальную стоимость разрезания строки на m+1 частей.

9
задан Mark 9 April 2012 в 05:49
поделиться