Як зазначав @Suresh, як тільки ви знаєте, що вашу проблему можна вирішити DP (тобто вона демонструє оптимальну підструктуру та перекриваючі підпрограми), ви можете подумати про розрив та підкорити рекурсивне рішення.
Звичайно, поділ і підкорення буде сильно неефективним, оскільки кожна підпроблема, що зустрічається у відповідному дереві рекурсії, буде вирішена знову, навіть якщо вона вже знайдена та вирішена. Тут DP відрізняється: кожного разу, коли ви стикаєтеся з підпрограмою, ви вирішуєте її і зберігаєте її рішення в таблиці. Пізніше, коли ви знову зустрінете цю підпроблему, ви отримаєте в раз її рішення замість того, щоб знову її вирішити. Оскільки кількість підпроблем, що перекриваються, як правило, обмежується поліномом, а час, необхідний для вирішення однієї підпрограми, є і многочленом (інакше DP не може забезпечити економічно ефективне рішення), ви в цілому досягаєте поліноміального рішення.O(1)
Тому роздуми над рішенням про розрив та перемогу нададуть вам уявлення про те, якою може бути підпроблема для вашої конкретної проблеми.