记录编号 369619 评测结果 AAAAAAAAAA
题目名称 [网络流24题] 搭配飞行员 最终得分 100
用户昵称 Gravatarxzz_233 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2017-02-10 10:21:36 内存使用 0.30 MiB
显示代码纯文本
#include<cstdio>
#include<algorithm>
#include<cstring>
#define t (dis[i])
using namespace std;
const int maxn=110,maxm=510<<1;
void init();
void work();
bool dfs(int);
int main() {
	freopen("flyer.in","r",stdin);
	freopen("flyer.out","w",stdout);
	init(),work();
	return 0;
}
inline int gi();
int n,n1,m,fir[maxn],nxt[maxm],dis[maxm];
inline void adde(int a,int b,int id) {
	nxt[id]=fir[a],fir[a]=id,dis[id]=b;
}
bool vis[maxn];
int T[maxn];
void work() {
	memset(T,-1,sizeof(T));
	int ans=0;
	for(int i=1; i<=n1; i++) {
		memset(vis,0,sizeof(vis));
		ans+=dfs(i);
	}
	printf("%d\n",ans);
}
void init() {
	scanf("%d%d",&n,&n1);
	int a,b;
	while(scanf("%d%d",&a,&b)==2)adde(a,b,++m),adde(b,a,++m);
}
bool dfs(int now) {
	for(int i=fir[now]; i; i=nxt[i])
		if(!vis[t]) {
			vis[t]=1;
			if(T[t]==-1||dfs(T[t])){
				T[t]=now;return 1;
			}
		}
	return 0;
}