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
Strategy Hard problem
So you know you’re solving an NP-hard problem, How can you put this into your advantage ?