Dynamic programming, greedy method, divide and conquer