Combinatorics
overview
Combinatorics studies how to count, arrange, and select objects in discrete settings. Core tools include permutations, combinations, pigeonhole principle, inclusion-exclusion, recurrences, and generating functions. In computing, it supports algorithm analysis, dynamic programming state counts, enumeration on graphs, and bounding search spaces. Master these to estimate complexity, reason about feasibility, and design efficient solutions for scheduling, routing, matching, and optimization.