首页 > 其他 > 详细

判断二分图

时间:2018-07-14 16:05:30      阅读:162      评论:0      收藏:0      [点我收藏+]

判断二分图方法:用染色法,把图中的点染成黑色和白色。
首先取一个点染成白色,然后将其相邻的点染成黑色,如果发现有相邻且同色的点,那么就退出,可知这个图并非二分图。

int istwo(int u)
{
    queue<int> E;
    mem(vis, -1);
    E.push(u);
    vis[u] = 1;
    while(!E.empty())
    {
        u = E.front(); E.pop();
        for(int i=0; i<G[u].size(); i++)
        {
            int v = G[u][i];
            if(vis[v] == -1)
            {
                if(vis[u] == 1) vis[v] = 0;
                else vis[v] = 1;
                E.push(v);
            }
            else if(vis[v] == vis[u])
                return 0;
        }
    }
    return 1;
}

int main()
{
    istwo(1);
}

 

判断二分图

原文:https://www.cnblogs.com/WTSRUVF/p/9309618.html

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