二分图匹配模板

来源:互联网 发布:数据库小工具 编辑:程序博客网 时间:2024/06/05 20:12

先推荐一下点击打开链接 博主的原理,写的真好;

#include <iostream>#include <string.h>using namespace std;const int maxn=1e5+10;int girl[maxn];int used[maxn];int line[1100][1100];int m,n; bool find(int x){for (int i=1;i<=m;i++) //枚举女生 {if (line[x][i]&&!used[i]) //有关系并且没被用过 {used[i]=1;if (girl[i]==0||find(girl[i])) //名花无主或者能腾 {girl[i]=x;return true;}}}return false;}int main(){std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);memset(girl,0,sizeof(girl));int ans=0;// 输入关系      for (int i=1;i<=n;i++) //枚举男生      {     memset(used,0,sizeof(used));     if (find(i)) ans++; } cout<<ans<<endl;} 


原创粉丝点击