首页 > 其他 > 详细

【HDOJ 2444】The Accomodation of Students

时间:2015-07-31 18:34:24      阅读:205      评论:0      收藏:0      [点我收藏+]

【HDOJ 2444】The Accomodation of Students

判断是否为二分图+二分图最大匹配 由于数据小 暴力水过去了。。。另一题3478专门卡这个 一会去做,。 由于是双向二分图 结果要除2

代码如下:

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>

using namespace std;

bool mp[233][233],vis[233];
int n,link[233];

bool can(int p)
{
    int i;
    for(i = 1; i <= n; ++i)
    {
        if(!vis[i] && mp[p][i])
        {
            vis[i] = 1;
            if(link[i] == -1 || can(link[i]))
            {
                link[i] = p;
                return true;
            }
        }
    }
    return false;
}

int main()
{
    int m,a,b,i,f,cnt;
    while(~scanf("%d %d",&n,&m))
    {
        f = 1;
        memset(mp,0,sizeof(mp));
        while(m--)
        {
            scanf("%d %d",&a,&b);
            if(f)
                for(i = 1; i <= n; ++i)
                    if(mp[b][i] && mp[a][i]) {f = 0;break;}
            mp[b][a] = mp[a][b] = true;
        }
        if(f)
        {
            memset(link,-1,sizeof(link));
            cnt = 0;
            for(i = 1; i <= n; ++i)
            {
                memset(vis,0,sizeof(vis));
                if(can(i)) cnt++;
            }
            printf("%d\n",cnt/2);
        }else puts("No");
    }
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

【HDOJ 2444】The Accomodation of Students

原文:http://blog.csdn.net/challengerrumble/article/details/47171877

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!