zoukankan      html  css  js  c++  java
  • nyoj 237 游戏高手的烦恼 二分匹配--最小点覆盖

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=237

    二分匹配--最小点覆盖模板题

    Tips:用邻接矩阵超时,用数组模拟邻接表WA,暂时只有vector<>过了!

    代码如下:

    //最小点覆盖 = 最大匹配数
    //最大独立集 = N - 最大匹配数
    
    #include "stdio.h"  //二分匹配,求最小点覆盖
    #include "string.h"
    #include "vector"
    using namespace std;
    #define N 505
    
    int match[N];
    bool mark[N];
    
    vector<int> s[N];
    
    bool find(int x,int n)
    {
        for(int i=0; i<(int)s[x].size(); i++)
        {
            int y = s[x][i];
            if(!mark[y])
            {
                mark[y] = true;
                if(match[y]==0 || find(match[y],n))
                {
                    match[y] = x;
                    return true;
                }
            }
        }
        return false;
    }
    
    int main()
    {
        int T;
        int x,y;
        int i,n,k;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d%d",&n,&k);
            for(i=0; i<N; ++i)
                s[i].clear();
            while(k--)
            {
                scanf("%d %d",&x,&y);
                s[x].push_back(y);
            }
            int ans = 0;
            memset(match,0,sizeof(match));
            for(i=1; i<=n; ++i)
            {
                memset(mark,false,sizeof(mark));
                if(find(i,n))
                    ans++;
            }
    
            printf("%d
    ",ans);
        }
        return 0;
    }
    


  • 相关阅读:
    清除所有标签的属性
    chm提取
    视频分享
    依赖注入
    python-markdown
    light sdk
    ~
    html标签引入外部html
    微信公众平台自定义菜单
    还在为需要ajax而导入jquery吗? 纯js封装ajax操作
  • 原文地址:https://www.cnblogs.com/ruo-yu/p/4411949.html
Copyright © 2011-2022 走看看