Dynamic Programming: Knapsack, TSP, and Optimal Binary Search Trees — KopHub