Programare dinamică

Este o tehnică folosită la problemele de optimizare precum și la cele de numărare.

Nu vorbim despre un "template" de algoritm, ci despre un principiu.

Codul arată diferit de la o problemă la alta. Aici dificultatea este "să te prinzi", implementarea fiind mai ușoară în majoritatea cazurilor (sau cel puțin se obține un cod relativ scurt).

O caracteristică a programării dinamice este ca stările pentru care se dorește obținerea optimului (din una în alta) să poată fi imaginate ca un graf aciclic.