a graph is bipartite if you can seperate its vertices into two groups and for every edge, its two vertices are in not in the same group. for more info, google it. the problems can be solved using i think network flow, and 10092 i think is an example.