Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

Глава 12. Последовательности и динамическое программирование

R-12.12 Потяните компактное представление суффикса trie для последовательности

«минимизируйте minime».

R-12.13 Что является самым длинным префиксом последовательности «cgtacgttcgtacg», который является также a

суффикс этой последовательности?

R-12.14 Потяните множество частоты и дерево Хафмана для следующей последовательности:

«собаки не определяют горячие горшки или кошек».

R-12.15 Покажите, что самая длинная общая подпоследовательность выстраивает L для двух последовательностей

X = «skullandbones» Y = «lullabybabies».

Что такое самая длинная общая подпоследовательность между этими последовательностями?

Креативность

C-12.1 Австралиец по рождению по имени Анатяри хочет пересечь пустыню, несущую только

единственная бутылка с водой. У него есть карта, которая отмечает все орошающие отверстия по пути. Принятие он может идти k мили на одной бутылке воды, проектировать эффективный алгоритм для определения, где Anatjari должен снова наполнить его бутылку, чтобы сделать как можно меньше остановок. Обсудите, почему Ваш алгоритм правилен.

C-12.2 Опишите эффективный жадный алгоритм для внесения изменения для указанного

стоимость используя минимальное число монет, принимая есть четыре denom-inations монет, названных четвертями, десятью центов, пятицентовыми монетами и пенсами, с ценностями 25, 10, 5, и 1, соответственно. Обсудите, почему Ваш алгоритм правилен.

C-12.3 Дайте набор в качестве примера наименований монет так, чтобы жадное изменение -

создание алгоритма не будет использовать минимальное число монет.

C-12.4 В проблеме охраны картинной галереи нам дают линию L это repre-

центы длинная прихожая в картинной галерее. Нам также дают набор X =

x0, x1..., xn-1 действительных чисел, которые определяют положения картин

в этой прихожей. Предположим, что единственная охрана может защитить все картины

в пределах расстояния самое большее 1 из его или ее положения (с обеих сторон). Проектируйте алгоритм для нахождения размещения охранников, которое использует минимальное число охранников, чтобы охранять все картины с положениями в X.

C-12.5 Позвольте P быть выпуклым многоугольником, триангуляция P - добавление диагонали -

соединение onals вершин P так, чтобы каждое внутреннее лицо было треугольником. Вес триангуляции - сумма длин диагоналей.

12.6. Упражнения 589

Предположение, что мы можем вычислить длины и добавить и сравнить их в доводе «против» - время стента, дать эффективный алгоритм для вычисления триангуляции минимального веса P.

C-12.6 Дайте пример текста T длины n и образца P длины m это

вынудите алгоритм соответствия образца «в лоб» иметь продолжительность, которая являетсяW (nm).

C-12.7 Дайте оправдание того, почему KMPFailureFunction функционируют (Кодекс Frag-

ment 12.7), управляет в O (m) временем на образце длины m.

C-12.8 Покажите, как изменить алгоритм соответствия образца последовательности KMP чтобы к

найдите, что каждое возникновение образца натягивает P, который появляется как подстрока в T, все еще управляя в O (n + m) временем. (Обязательно поймайте даже те матчи то наложение.)

C-12.9 Позвольте T быть текстом длины n и позволить P быть образцом длины m. Опишите

O (n+m) разовый метод для нахождения самого длинного префикса P, который является подстрокой T.

C-12.10 Скажите, что образец P длины m является круглой подстрокой текста T

длина n, если есть индекс0£ i <m, такой что P = T [n- m + я.. n- 1] +

T [0.. я- 1], то есть, если P - (нормальная) подстрока T или P, равен

связь суффикса T и префикса T. Дайте O (n + m) разовый

алгоритм для определения, является ли P круглой подстрокой T.

C-12.11 Алгоритм соответствия образца KMP может быть изменен, чтобы бежать быстрее на

двойные последовательности, пересматривая неудачу функционируют как

f (j) = самый большой k <j таким образом, что P [0.. k- 2] pk - суффикс P [1.. j], где pk обозначает дополнение kth части P. Опишите как к

измените алгоритм KMP, чтобы быть в состоянии использовать в своих интересах, это новое терпит неудачу - ure, функционируют и также дают функцию для вычисления этой функции неудачи. Покажите, что эта функция делает в большинстве n сравнений между текстом и образцом (в противоположность 2n сравнения необходимый стандартному алгоритму KMP данный в Разделе 12.3.3).

C-12.12 Измените упрощенный алгоритм BM, представленный в этой главе, используя идеи

от алгоритма KMP так, чтобы это управляло в O (n + m) временем. C-12.13 Учитывая последовательность X из длины n и последовательности Y длины m, опишите O (n +

m) разовый алгоритм для нахождения самого длинного префикса X, который является суффиксом Y. C-12.14 Дайте эффективный алгоритм для удаления последовательности от стандарта trie и

проанализируйте его продолжительность. C-12.15 Дайте эффективный алгоритм для удаления последовательности от сжатого trie

и проанализируйте его продолжительность.

590