I've learnt the O(VE) Bipartite Matching solution but I'm not sure what the algorithm is called and how it is implemented. It is the one similar to this here, that doesn't use flows, only finding and extending augmenting paths till there is none: http://www.columbia.edu/~cs2035/courses/ieor8100.F12/lec4.pdf Could anyone share code please?