记录编号 537703 评测结果 WWWWWWWWWW
题目名称 [网络流24题] 搭配飞行员 最终得分 0
用户昵称 Gravatarleon 是否通过 未通过
代码语言 C++ 运行时间 0.007 s
提交时间 2019-07-15 21:16:56 内存使用 13.89 MiB
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
struct edge{
	int to,next;
}a[10010];
int head[10010],tot,nx,ny,n,ans,rx[10010],ry[10010];
int vis[10010]; 
void add(int x1,int x2){
	tot++;
	a[tot].to=x2;
	a[tot].next=head[x1];
	head[x1]=tot;
	return;
} 
int find(int x){
	for(int i=head[x];i;i=a[i].next){
		int to=a[i].to;
		if(vis[to]==0){
		vis[to]=1;
		if(ry[to]==-1||find(ry[to])){
			    ry[to]=x;
			    rx[x]=to;
				 }	
				}
	}
}
int main() {
	freopen("flyer.in","r",stdin);
	freopen("flyer.out","w",stdout);
	int x,y; 
	memset(rx,-1,sizeof(rx));
    memset(ry,-1,sizeof(ry));
    cin>>n>>nx;
	ny=n-nx;
	for(;scanf("%d%d",&x,&y)==2;){
		add(x,y-ny);
	} 
	int t;
	for(int i=1;i<=nx;i++){
		if(rx[i]==-1){
			memset(vis,0,sizeof(vis));
			if(find(i)==1){
				ans++;
			}
			} 
	}
	cout<<ans;
	return 0;
}