标签:des style blog color os 2014
Description
Input
Output
Sample Input
3 4 1 1 1 3 2 2 3 2
Sample Output
2
题意:题意:矩阵上有一些小行星,占据了一些格子,我们每次操作可以清理一列中的所有小行星,也可以清理一行中的所有小行星,问最少进行多少次操作可以清理掉所有的小行星。
思路:所以本题就是一个最大匹配问题!
AC代码:
#include<stdio.h>
#include<string.h>
int link[520][520];
int vis[520],col[520];
int w,m;
int match(int x)
{
int i;
for(i=1;i<=w;i++){
if(link[x][i]&&!vis[i])
{
vis[i]=1;
if(!col[i]||match(col[i]))
{
col[i]=x;
return 1;
}
}
}
return 0;
}
int main()
{
int a,b,sum=0;
memset(link,0,sizeof(link));
memset(col,0,sizeof(col));
scanf("%d %d",&w,&m);
for(int i=1;i<=m;i++){
scanf("%d %d",&a,&b);
link[a][b]=1;
}
for(int i=1;i<=w;i++){
memset(vis,0,sizeof(vis));
if(match(i))sum++;
}
printf("%d\n",sum);
return 0;
}
POJ 3041 Asteroids,布布扣,bubuko.com
标签:des style blog color os 2014
原文地址:http://blog.csdn.net/u012313382/article/details/37668685