poj 1422 Air Raid(最小路径覆盖)

来源:互联网 发布:亿程旅行社 知乎 编辑:程序博客网 时间:2024/05/16 14:14
#include <iostream>#include <string.h>#include <stdio.h>using namespace std;int way[1001][1001],boy[1001],girl[1001];int m,n;bool findways(int x){    for (int i=1; i<=m; i++)    {        if(!girl[i]&&way[x][i])        {            girl[i]=1;            if (!boy[i]||findways(boy[i]))            {                boy[i]=x;                return true;            }        }    }    return false;}int main(){    int a,b,sum,T;    scanf("%d",&T);    while(T--)    {        scanf("%d %d",&m,&n);        memset(way,0,sizeof(way));        memset(boy,0,sizeof(boy));        sum=0;        for (int i=0; i<n; i++)        {            scanf("%d %d",&a,&b);            way[a][b]=1;        }        for (int i=1; i<=m; i++)        {            memset(girl,0,sizeof(girl));            if (findways(i)) sum++;        }        printf("%d\n",m-sum);    }    return 0;}

0 0
原创粉丝点击