More Dynamic Programming: Knapsack, Optimal Binary Trees