Asymptotic notation, time and space complexity
Algorithms using loops and iterative approaches
Problem decomposition and recursive solutions
Locally optimal choices for global optimum
Optimization through overlapping subproblems
Exploring all possible solutions recursively
Algorithms involving prime numbers and modular arithmetic
Computational complexity and problem hardness