二分图板子

using namespace std;


bool vis[N];
int match[N];

bool find(int x)
{
	for(int i=h[x];i;i=nxt[i])
	{
		int y=to[i];
		if(!vis[y])
		{
			vis[y]=1;
			if(!match[y]||find(match[y]))
			{
				match[y]=x;
				return 1;
			}
		}
	}
	return 0;
}

int main()
{
	for(int i=1;i<=n;i++)
	{
		memset(vis,0,sizeof vis);
		if(find(i)) ans++;
	}
}`
posted @ 2024-09-02 11:34  zhengchenxi  阅读(21)  评论(0)    收藏  举报