二分图图匹配

dog dog 明明是讲网络流我却突然get了二分图匹配


看来图论才是真爱。

去他的 增广路,不就是找两两匹配嘛。‘

准备给你们画个图的,但是!

好麻烦哦,算了自己懂就行了是伐。

假设123 ABC。

首先对第一个点进行dfs,如果 找到一条边链接,return true,假设1与A连接。

然后对第二个点进行dfs,如果他和原来已经使用过的点有边,如2与A也有边,那我们就先假设断掉1与A,再来找1与其他点有没有边,找到就连接,2与A连接,return true,若1没有找到,则不更改,return false。

。。。。

代码突然好懂,dog dog。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

using namespace std;

typedef long long ll;
const int MAXN = 510;
int uN, vN;
int g[MAXN][MAXN];
int linker[MAXN];
bool used[MAXN];
bool dfs(int u)
{
	int v;
	for (v = 0; v






你可能感兴趣的:(ACM,自己看看)