• hdu1068 Girls and Boys --- 最大独立集


    有一个集合男和一个集合女,给出两集合间一些一一相应关系。问该两集合中的最大独立集的点数。

    最大独立集=顶点总数-最大匹配数

    此题中。若(a,b)有关。则(b,a)有关。每个关系算了两次,相当于二分图的两边集合没有分男女。两边都是总人数。

    所以此题中答案应该是 顶点总数-最大匹配数/2


    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<iostream>
    #include<algorithm>
    #include<vector>
    #include<queue>
    const int maxn=510;
    using namespace std;
    
    int mx[maxn],my[maxn],vis[maxn],e[maxn][maxn],n;
    
    int path(int i)
    {
        int j;
        for(j=0;j<n;j++)
        {
            if(e[i][j]&&!vis[j])
            {
                vis[j]=1;
                if(my[j]==-1||path(my[j]))
                {
                    my[j]=i;
                    mx[i]=j;
                    return 1;
                }
            }
        }
        return 0;
    }
    
    int hungry()
    {
        int res=0;
        memset(mx,-1,sizeof mx);
        memset(my,-1,sizeof my);
        for(int i=0;i<n;i++)
        {
            if(mx[i]==-1)
            {
                memset(vis,0,sizeof vis);
                res+=path(i);
            }
        }
        return res;
    }
    
    int main()
    {
        int a,b,m,i;
        while(~scanf("%d",&n))
        {
            memset(e,0,sizeof e);
            for(i=0;i<n;i++)
            {
                scanf("%d: (%d)",&a,&m);
                while(m--)
                {
                    scanf("%d",&b);
                    e[a][b]=1;
                }
            }
            printf("%d
    ",n-hungry()/2);
        }
        return 0;
    }
    


  • 相关阅读:
    52、saleforce 第一篇
    nodejs自定义模块
    NodeJS require路径
    Angularjs ngTable使用备忘
    HTML5拖拽功能中 dataTransfer对象详解
    Javascript闭包深入解析及实现方法
    Grunt实例
    Grunt插件uglify
    javascript 将字符串当函数执行
    多个springboot项目部署在同一tomcat上,出现jmx错误
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6882218.html
Copyright © 2020-2023  润新知