Most of this problem is that it's going to involve building an improved search tree
for the vertex cover problem.
So in order to start off with that, let's go ahead and try building the naive approach
which is very similar to what you did in problem set 1, if you'd like to
take a look back at that very quickly.
Let's take a look at this.
I'd like you to fill in a function, recursive vertex cover, that takes an input graph,
which is a list of lists, and an assignment, which is a list of vertices that we cover
and then builds the search tree from that.
So what your code should do--first, it should check if it's still possible
to construct a valid vertex cover.
If not, you should return float inf, the Python expression for infinity.
If the assignment is a valid vertex cover, then you return the size of that cover.
Otherwise, I want you to find a vertex v that does not have an assignment.
And, once again, I'd recommend checking out the naive algorithm
you implemented in problem set 1
for a different NP problem that is very similar to this one.