记录编号 131669 评测结果 AAAAAAAAA
题目名称 [USACO 4.2] 完美的牛栏 最终得分 100
用户昵称 Gravatar天一阁 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2014-10-24 19:38:00 内存使用 0.32 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#define Maxn 404
using namespace std;
vector<int> G[Maxn];
int pre[Maxn]={0},n,x,m,t,ans=0;
bool vis[Maxn]={0};
bool find(int x){
	vis[x]=true;
	for(int i=0;i<G[x].size();i++){
		if(!vis[G[x][i]]){
			vis[G[x][i]]=true;
			if(!pre[G[x][i]]||find(pre[G[x][i]])){
				pre[G[x][i]]=x;
				return true;
			}
		}
	}
	return false;
}
int main(){
	freopen("stall4.in","r",stdin);
	freopen("stall4.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		scanf("%d",&t);
		for(int j=1;j<=t;j++){
			scanf("%d",&x);
			G[i].push_back(x+n);
			G[x+n].push_back(i);
		}
	}
	for(int i=1;i<=n;i++){
		memset(vis,0,sizeof(vis));
		if(find(i)) ans++;
	}
	cout<<ans<<endl;
}