hdu 2768 Cat vs. Dog 最大独立集(最大匹配)

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
const int maxn=505;
vectore[maxn];
int vis[maxn],pre[maxn];
int find(int u)//判断增广路是否存在,匈牙利算法
{
    int i,j,v;
    for(i=0;i>T;
    while(T--)
    {
        cin>>c>>d>>v;
        int i,j,k;
        for(i=1;i<=v;i++)
            e[i].clear();
        for(i=1;i<=v;i++)
        cin>>a[i]>>b[i];
        for(i=1;i<=v;i++)
            for(j=1;j<=v;j++)
            if(a[i]==b[j]||b[i]==a[j])
            {
                e[i].push_back(j);
                e[j].push_back(i);
            }
        memset(pre,-1,sizeof(pre));
        int ans=0;
        for(i=1;i<=v;i++)
        {
            memset(vis,0,sizeof(vis));
            ans+=find(i);
        }
        cout<

你可能感兴趣的:(最大匹配)