The document discusses NP-complete problems and polynomial-time reductions between them. It summarizes several permutation and subset problems that are known to be NP-complete, including Hamiltonian path/cycle, vertex cover, and 3-SAT. It then describes polynomial-time algorithms for solving some of these problems exactly using a "decision box" that can determine in polynomial time whether an instance has a solution. For example, it presents an O(n) algorithm for finding a minimum vertex cover using a decision box to iteratively test subset sizes.