Describir: Dynamic programming / Moshe Sniedovich.