# NP-Complete
**A class of decision problems to which any [[Nondeterministic Polynomial Time|NP]] problem can be [[Polynomial Time Reduction|polynomially reduced]] and is also decidable.**
> [!Example] NP-Complete
> A decision problem $C$ is *NP-complete* if:
> - when the answer is 'yes', there exists a *solution* that is polynomial in length.
> - whether or not a solution is correct can be *verified* in *polynomial time*.
> - it can be used to *simulate* every other problem whose solutions can be verified in polynomial time.
>
> Alternatively, an NP-complete problem is both an NP and an [[NP-hard]] problem.
The meaning of "complete" is that any solution to an NP-complete problem can also completely solve all other NP problems.
![[NPEulerDiagram.svg]]