Алгоритм и структура данных учебных ресурсов для динамического программирования - PullRequest
3 голосов
/ 12 ноября 2009

Сейчас я изучаю динамическое программирование, и хотя я хорошо знаю теорию, разработка алгоритмов DP для новых задач все еще трудна.

Это то, что мне бы очень хотелось сейчас - книга или веб-сайт, который ставит проблему, которую можно решить с помощью динамического программирования. Также есть решение с доступным объяснением, которое я хотел бы увидеть, если я не смогу решить проблему, даже после того, как потрудию над этим в течение нескольких часов. Есть ли какой-нибудь ресурс, который предоставляет подобные вещи для нескольких категорий алгоритмов, таких как алгоритмы графов, динамическое программирование и т. Д.?

P.S. Я рассматривал Topcoder, но решения там не совсем подходят для обучения внедрению эффективных решений.

Ответы [ 4 ]

4 голосов
/ 12 ноября 2009

Вероятно, подойдет любой из наборов задач конкурса ACM. Некоторые места, где можно найти такие:

1 голос
/ 07 апреля 2010

Я несколько не согласен с тем, что решения на TopCoder не являются примерами хорошей практики. Решения, представленные лучшими пользователями, часто бывают очень простыми и не обязательно чрезвычайно эффективными, достаточно эффективными. Что действительно важно, так это то, что код очень короткий, что делает его намного более простым для понимания, особенно если вы еще не знаете решение.

Я не рекомендую писать обычные программы в одном и том же стиле, но это определенно может научить вас чрезмерному проектированию. Я видел решения на Java с пользовательскими итераторами, компараторами и т. Д., И их было намного сложнее понять, даже если сам алгоритм был тривиальным.

Однажды я прочитал эссе Пола Грэма, где он утверждает, что программы с меньшим количеством токенов легче понять. TopCoder убедил меня, что это правда, по крайней мере, в некоторых доменах.

1 голос
/ 12 ноября 2009

Многие проблемы в Project Euler можно элегантно решить с помощью динамического программирования.

0 голосов
/ 12 ноября 2009

http://www.topcoder.com
Здесь вы найдете все типы вопросов разного уровня сложности.

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