比赛 202110省实验桐柏一中普及组联赛 评测结果 AAAAAAAAAA
题目名称 分配同桌 最终得分 100
用户昵称 蒟蒻 运行时间 0.625 s
代码语言 C++ 内存使用 20.25 MiB
提交时间 2021-10-18 18:45:45
显示代码纯文本
#include<bits/stdc++.h>
#define inf 999999
using namespace std;
int n,m,x,y,ans; 
bool ok[10005][10005],t[10005];
int lj[10005];
bool find(int v){
    for(int i=1;i<=m;i++){
        if(ok[v][i]&&!t[i]){
            t[i]=true;
            if(lj[i]==-1||find(lj[i])){lj[i]=v;return true;}
        }
    }
    return false;
}
int main(){
	freopen("tongzhuo.in","r",stdin);
	freopen("tongzhuo.out","w",stdout);
	cin>>n>>m;
	while(cin>>x>>y){
		ok[y][x]=true;
	}/*
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cout<<ok[i][j]<<" ";
		}
		cout<<endl;
	}*/
    memset(lj,-1,sizeof(lj));
    for(int i=1;i<=n;i++){
        memset(t,0,sizeof(t));
        if(find(i)) {ans++;/*cout<<i<<" ";*/}
    }
    cout<<ans;
    return 0;
}