Dynamic Programming, Greedy Algorithms