美文网首页GraphTheory
Codeforce-1176E(二分图)

Codeforce-1176E(二分图)

作者: 雨落八千里 | 来源:发表于2019-06-23 11:53 被阅读56次

题意是最多选择 n/2 个点使得没有选中的点与选中的点相邻
cover it

思路

将一条线段的端点分成两部分,取其中一半就可以得到选中的点与没有选中的点相邻

#include<bits/stdc++.h>
using namespace std;
int vis[200010];
queue<int>qu1;
queue<int>qu2;
int main( )
{
    int t;
    cin>>t;
    while(t--)
    {
        while(!qu1.empty())
        {
              qu1.pop();
        }
        while(!qu2.empty())
        {
              qu2.pop();
        }
        int n,m;
        int x,y;
        cin>>n>>m;
        for(int i=1; i<=n; i++)
        {
            vis[i]=0;
        }
        for(int i=1; i<=m; i++)
        {
            cin>>x>>y;
            if(vis[x]==0&&vis[y]==0)
            {
                qu1.push(x);
                vis[x]=1;
                qu2.push(y);
                vis[y]=2;
            }
            if(vis[x]==1&&vis[y]==0)
            {
                qu2.push(y);
                vis[y]=2;
            }
            if(vis[x]==0&&vis[y]==1)
            {
                qu2.push(x);
                vis[x]=2;
            }
            if(vis[x]==0&&vis[y]==2)
            {
                qu1.push(x);
                vis[x]=1;
            }
            if(vis[x]==2&&vis[y]==0)
            {
                qu1.push(y);
                vis[y]=1;
            }

        }
        int len1=qu1.size( );
        int len2=qu2.size( );
        if(len1<=len2)
        {
            cout<<len1<<endl;
            while(!qu1.empty())
            {
                cout<<qu1.front()<<" ";
                qu1.pop();
            }
        }
        else
        {
            cout<<len2<<endl;
            while(!qu2.empty())
            {
                cout<<qu2.front()<<" ";
                qu2.pop( );
            }
        }
        cout<<endl;
    }

    return 0;
}

相关文章

  • Codeforce-1176E(二分图)

    题意是最多选择 n/2 个点使得没有选中的点与选中的点相邻cover it思路将一条线段的端点分成两部分,取其中一...

  • 二分匹配 专题整理

    二分匹配学习记录 参考资料 二分图讲解及匈牙利模板 HDU 2444 题意 给出图,求是否二分图,和二分图的最大匹...

  • 【算法篇】二分图匹配之匈牙利算法

    二分图匹配,自然要先从定义入手,那么二分图是什么呢? 二分图: 二分图又称作二部图,是图论中的一种特殊模型。 设G...

  • 算法学习之路|二分图的最大匹配—匈牙利算法(Dfs实现)

    摘要:二分图的概念:二分图又称作二部图,是图论中的一种特殊模型 二分图的概念:二分图又称作二部图,是图论中的一种特...

  • 二分图基础知识

    前言:总结一下二分图相关的知识点 0X00 基础 判断是不是二分图 785. 判断二分图 DFS 遍历所有节点,遍...

  • 基于图的personal rank推荐算法

    背景 用户的行为很容易表示为图定点,边 uesr,item构建图(二分图)二分图:又称为二部图,是图论中的一种特...

  • LeetCode 785. 判断二分图

    题目 785. 判断二分图 描述 给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节...

  • 二分图

    二分图判定: 题目链接:二分图判定 dfs: 最大匹配: 题目链接:最大匹配-匈牙利算法 dfs: 二维最大匹配:...

  • 二分图

    说说二分图,其实图论的题难点不在用算法,难在如何建图,只有图建好了,剩下的就简单了,在这说说求二分图的算法,即匈牙...

  • 785. 判断二分图

    785. 判断二分图 染色法

网友评论

    本文标题:Codeforce-1176E(二分图)

    本文链接:https://www.haomeiwen.com/subject/cheiqctx.html