Dynamisk programmering

Denna teknik att lösa problem tycker jag är den mest användbara algoritmteorin för programmeringstävlingar. I IOI och BOI finns det så gott som alltid ett sådant problem med. Det finns en massa matematik bakom den allmänna tekniken, men jag tror att det blir enklare att ta ett par exempel där jag förklarar hur man gör.

Knapsack-problemet
Longest Increasing subsequence

Tävlingsproblem med dynamisk programmering (försök utan att titta på Hjälp):
 
Problem Tävlingens hemsida Hjälp och kommentarer
The triangle IOI 94 Hjälp
Polygon IOI 98 Hjälp
Expressions BOI 99
Honeycomb BOI 00
Little shop of flowers IOI 99
Maximum Sum (108) Problem Set Archive
Ugly Numbers (136) Problem Set Archive
Sticks (307) Problem Set Archive
Optimal Array Multiplication Sequence (348) Problem Set Archive
e-Coins
SM 2001