zoukankan      html  css  js  c++  java
  • 二分图最大独立集

    题目链接:

    https://vjudge.net/contest/251959#problem/J

    代码:

    //将不符合关系的点建成一个图,然后求一个最大独立集(最大独立集等于n-最小顶点覆盖),最小顶点覆盖就是选择最少的点来覆盖所有的边。
    #include<iostream>
    #include<string>
    #include<cstring>
    #include<iomanip>
    #include<vector>
    #include<map>
    #include<cmath>
    #include<stdio.h>
    using namespace std;
    # define maxn 2000+100
    int n;
    vector<int >wakaka[maxn];
    int vis[maxn];
    int net[maxn];
    struct node
    {
        int x,y;
    } q[maxn];
    bool Find(int t )
    {
        vis[t]=1;
        int len=wakaka[t].size();
        for(int i=0; i<len; i++)
        {
            int temp=wakaka[t][i];
            int s=net[temp];
            if(s==-1||(vis[s]==0&&Find(s)))//尽可能的保持原来的关系不变
            {
                net[temp]=t;
                net[t]=temp;
                return true;
            }
        }
        return false;
    }
    int match()
    {
        int ans=0;
        memset(net,-1,sizeof(net));
        for(int i=1; i<=n; i++)
        {
            if(net[i]<0)
            {
                memset(vis,0,sizeof(vis));
                if(Find(i))ans++;
            }
        }
        return ans;
    }
    int main()
    {
        while(~scanf("%d",&n))
        {
          for(int i=1; i<=n; i++)
            {
                wakaka[i].clear();
            }
            for(int i=1; i<=n; i++)
            {
                scanf("%d%d",&q[i].x,&q[i].y);
            }
            for(int i=1; i<=n; i++)
            {
                for(int j=1+i; j<=n; j++)
                {
                    if(abs(q[i].x-q[j].x)+abs(q[i].y-q[j].y)==1)
                    {
                        wakaka[i].push_back(j);
                        wakaka[j].push_back(i);
                    }
                }
            }
            printf("%d
    ",n-match());
        }
        return 0;
    }
    
  • 相关阅读:
    网络编程
    C 语言 const
    C 语言 链表
    C 语言 按位计算
    C 语言 格式化输出输入
    C 语言 结构类型 联合
    C 语言 结构类型 结构
    C 语言 结构类型 枚举
    bash shell configuration
    sed usage
  • 原文地址:https://www.cnblogs.com/letlifestop/p/10262926.html
Copyright © 2011-2022 走看看