Hello!
My question is simple. Can someone give me a test sample for maximum matching in bipartite graphs on which Kuhn's algorithm preforms badly (something like O(N * M) in time). Thanks in advance.
# | User | Rating |
---|---|---|
1 | tourist | 3985 |
2 | jiangly | 3814 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3517 |
7 | Radewoosh | 3410 |
8 | hos.lyric | 3399 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
4 | atcoder_official | 161 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | awoo | 154 |
8 | Dominater069 | 154 |
10 | luogu_official | 151 |
Hello!
My question is simple. Can someone give me a test sample for maximum matching in bipartite graphs on which Kuhn's algorithm preforms badly (something like O(N * M) in time). Thanks in advance.
Name |
---|
In a complete bipartite graph, Kuhn's would traverse the longest augmenting path first: http://imgur.com/a/dXXRq
It seems to be 1 + 2 + ... + N = O(N2) in that case
It will take longest time if it fails to augment the matching. Then it will have to look through all edges in adjacency lists of reachable nodes. So we take a full bipartite graph with n/4 + n/4 nodes and another n/2 nodes connect to any node in the right half, m=n^2/16+n/2. Ignoring the part where we find matching in full part the total number of times we will look at some edge is n/2 (m-n/2+1) = O(nm)