模板——二分图匹配
n个男生,m个妹子,e个暧昧关系,让更多的男生有妹子
#include <cstdio> #include <cstring> #include <iostream> using namespace std; int n,m,e; const int maxn=10010; int line[maxn][maxn]; bool used[maxn]; int girl[maxn]; bool find(int x) { for(int i=1;i<=m;i++) { if(line[x][i]&&used[i]==0) { used[i]=1; if(girl[i]==0||find(girl[i])) { girl[i]=x; return true; } } } return false; } int main() { scanf("%d%d%d",&n,&m,&e); for(int i=1;i<=e;i++) { int x,y; scanf("%d%d",&x,&y); line[x][y]=1; } int ans=0; for(int i=1;i<=n;i++) if(find(i)) ans++; printf("%d\n",ans); return 0; }