Динамическое программирование ресурсов на C? - PullRequest
5 голосов
/ 09 января 2011

Завтра я напишу онлайн-тест Google. Видимо, они определенно задают одну проблему по динамическому программированию?

Кто-нибудь знает хороший ресурс для сбора проблем DP в C вместе с решениями? Я знаю, что такое DP, и использовал его по случаю или дважды. Как бы то ни было, я чувствую, что в тесте можно решить проблему с DP, предшествующая практика типичных проблем облегчит подход.

Будем весьма благодарны за любые полезные ресурсы или проблемы с решениями на C. Спасибо.

Ответы [ 4 ]

8 голосов
/ 09 января 2011

Хорошо, поэтому я действительно надеюсь, что это не считается «бесстыдной саморекламой», поскольку все эти ссылки относятся к фрагментам кода, которые я разместил на своем личном сайте.Если это неуместно, пожалуйста, дайте мне знать, и я могу их снять.

Вот несколько забавных задач DP, которые в значительной степени классические:в строках A и B найдите наименьшее количество правок (вставок, удалений или замен), необходимых для преобразования A в B. Это называется расстоянием Левенштейна. (Мое решение)

Оптимальное выравнивание последовательности: Для двух строк A и B найдите минимальное количество пробелов, которые должны быть вставлены в последовательность для выравнивания A и B. Это называетсяАлгоритм Нидлмана-Вунша. (Мое решение) Кратчайшие пути из одного источника: Для ориентированного графа G и одного узла s найдите длины кратчайших путей от s до каждого другого узла в графе,предполагая, что ребра могут быть положительными или отрицательными, но циклов не существует.Это алгоритм Беллмана-Форда. (Мое решение) Кратчайшие пути всех пар: Для ориентированного графа G найдите минимальные расстояния между всеми парами узлов.Это алгоритм Флойда-Варшалла. (Мое решение)

Надеюсь, это несколько полезно и удачи завтра!

1 голос
/ 09 января 2011

На практике вы можете взять одну из доступных проблем в SPOJ.Чтобы легко распознать DP, вы можете проверить по Классификатор проблем (ключевое слово: dp).

1 голос
/ 09 января 2011

Я предлагаю вам собрать книгу «Введение в алгоритмы биоинформатики». В ней есть глава, полностью посвященная DP. Поскольку @templatetypedef упомянул Минимальное расстояние редактирования, Оптимальное выравнивание последовательностей у него есть другая проблема с ними. Хотя в Вы должны сделать это самостоятельно. Но вы найдете их довольно интересными.

1 голос
/ 09 января 2011

Сайт Topcoder потрясающий.Не все проблемы используют DP, но многие используют.Бесплатный полный доступ ко всем задачам прошлых соревнований, которые находятся на 3 различных уровнях сложности, а также объяснения каждой проблемы после каждой проблемы от автора проблемы.Не только это, но вы можете быстро найти решение с исходным кодом, предоставленное любым программистом в конкурсе.

Давно там не было, но они позволяют по крайней мере C ++, Java, C # и Iверю нескольким другим языкам сейчас.

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