Flows cuts and matchings

If you don’t know what is maximum flow or minimum cut I suggest you start by reading this tutorial TopCoder Tutorials: Maximum Flow or sections 26.1, 26.2 in Introduction to Algorithms 3rd ed, make sure you understand the equivalence between maximum flow and the size of minimum cut, this tutorial contains some applications and example problems.

Meet in the middle

Meet in the middle is a search technique used when the input size is small but not small enough to use direct brute force. A famous example

Problem divisibility

Divisibility[ICPC Regionals Dhaka 2012]

Strategy Hard problem

So you know you’re solving an NP-hard problem, How can you put this into your advantage ?