#include <iostream>
using namespace std;
int link[510],n,m;
bool map[510][510],hav[510];
bool find(int x){
int y,k;
for(y=1;y<=n;y++)
if(hav[y] && map[x][y]){
hav[y]=false;
k=link[y];link[y]=x;
if(k==0||find(k))return true;
link[y]=k;
};
return false;
}
int main(){
int i,j,k,x,y;
scanf("%d%d\n",&n,&m);
memset(map,false,sizeof(map));
while(m--){
scanf("%d%d\n",&x,&y);
map[x][y]=true;
};
x=0;
for(i=1;i<=n;i++){
memset(hav,true,sizeof(hav));
if(find(i))x++;
};
cout<<x<<endl;
return 0;
}
poj 3041 Asteroids
最新推荐文章于 2022-08-16 21:41:12 发布