Dynamic programming examples