范沐垚


私信TA

用户名:dotcpp0614554

访问量:4749

签 名:

好大喜功

等  级
排  名 196
经  验 6556
参赛次数 0
文章发表 87
年  龄 18
在职情况 学生
学  校 看今夜 小楼灯宴
专  业 尽是良辰美眷

  自我简介:

沽名钓誉

//形象:男的女的互有好感,现在为男的(a)找女朋友(b)且保证没有脚踏多只船
#include<iostream>
#include<algorithm>
#include<cstring>

using namespace std;
const int N=1e5+10;

int e[N],h[N],ne[N],mat[N],idx;
bool st[N];
int n1,n2,m,res;

void add(int a,int b)
{
	e[idx]=b;
	ne[idx]=h[a];
	h[a]=idx++;
}

bool find(int k)
{
	for(int i=h[k];i!=-1;i=ne[i])
	{
		int j=e[i];
		if(!st[j])
		{
			st[j]=true;
			if(mat[j]==0||find(mat[j]))//如果这个b还没被匹配,或者能为已经配备的mat[j]找到下家,就成功为k匹配 
			{
				mat[j]=k;
				return true;
			}
		}
	}
	return false;
	
}

int main(void)
{
	cin>>n1>>n2>>m;
	memset(h,-1,sizeof h);
	while(m--)
	{
		int a,b;
		cin>>a>>b;
		add(a,b);	//只为a找b所以只存一个方向就行 
	}
	for(int i=1;i<=n1;i++)
	{
		memset(st,false,sizeof st);
		if(find(i))res++;
	}
	cout<<res<<endl;
	return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »