恕我直言,我这只菜狗觉得 oi-wiki 上 Dinic 跑二分图最大匹配的 O(mn) 复杂度的证明有问题。
他说 ⌈ 因为单位网络的特点,这些增广路不会在源点和汇点以外的点相交 ⌋。按照我的理解,他的意思就是说,每次跑出的增广路在源汇以外的位置不会回合。
然而,经过一些尝试,我觉得这句话有问题(当然可能是我自己的问题)。比如,考虑这张图:
它的最大匹配数明显是 2,但如果先增广了 2→3 的话,那么接着会增广 1→3→2→4(会添加反边 3→2)。
那么难道不是就在 2,3 相交了吗 /yiw