Groups
Category
An invariant is a property you promise to keep true throughout an algorithm, and it is the anchor of both design and correctness proofs.
Meet-in-the-middle splits a hard exponential search into two halves, enumerates each half, and then combines results efficiently.