首页 > 其他分享 >染色法二分图

染色法二分图

时间:2022-09-01 15:35:47浏览次数:59  
标签:二分 10 int 1e5 染色法 addEdge

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10, M = 1e5 + 10, INF = 0x3f3f3f3f;
int n, m, h[N], e[M << 1], ne[M << 1], idx, color[N];

void addEdge(int f, int t)
{
    e[idx] = t, ne[idx] = h[f], h[f] = idx ++ ;
}

bool dfs(int u, int c)
{
    color[u] = c;
    for(int i = h[u]; ~i; i = ne[i])
    {
        int t = e[i];
        if(!color[t] && !dfs(t, 3 - c)) return false;
        else if(color[t] == c) return false;
    }
    return true;
}

int main()
{
    cin >> n >> m;
    memset(h, -1, sizeof h);
    for(int i = 0; i < m; i ++ )
    {
        int f, t;
        cin >> f >> t;
        addEdge(f, t);
        addEdge(t, f);
    }

    bool flag = true;

    for(int i = 1; i <= n; i ++ )
    {
        if(!color[i])
        {
            flag = dfs(i, 1);
            if(!flag) break;
        }
    }

    if(flag) puts("Yes");
    else puts("No");

    return 0;
}

 

标签:二分,10,int,1e5,染色法,addEdge
From: https://www.cnblogs.com/leyuo/p/16646677.html

相关文章

  • 2022-8-31 每日一题-栈模拟-剑指offer-二分查找
    946.验证栈序列难度中等303收藏分享切换为英文接收动态反馈给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入......
  • 1.二分查找
    1.模板intsearch(vector<int>&nums,inttarget){intl=0;intr=nums.size();intmid;while(l<r){mid=(l+r)/2;if(nums[mid]<t......
  • leetcode704基本二分查找
    intsearch(vector<int>&nums,inttarget){intl=0;intr=nums.size()-1;cout<<r<<endl;intmid;while(l<r){mid=(l+r)/2;......
  • leetcode35二分查找并插入
    intsearchInsert(vector<int>&nums,inttarget){intl=0;intr=nums.size();intmid=0;while(l<r){mid=(l+r)/2;......
  • leetcode278二分变形
    longlongfirstBadVersion(intn){longlongl=1;longlongr=n;longlongmid=1;//执行完之后l=r即为答案while(l<r){......
  • 用java实现二分查找
    /***调用erfen方法,输入数据int[]s={0,1,2,3,4,5}和8,输出方法的返回值*/publicclassErfen{ publicintsearch(int[]nums,inttarget){ intl=0; intr=nums.l......
  • 二分图
    二分图可以将一个图分为两部分,这两部分内部没有边,都是由一部分连向另外一部分那么就称这个图为二分图染色法判别二分图如何判断二分图不含奇数环是一个充要条件只要......
  • 关于二分查找法(Java)
    二分查找法是将一个有序数组平均分成两份,将其中间数和对应要查找的值进行比较;例如现在我们将数组中最小的元素的下标设置为min最大的元素的下标设置max中间的元素下标mi......
  • python基础.内置函数(二),递归函数,二分法
    python基础.内置函数(二),递归函数,二分法  一.lamda匿名函数为了解决一些简单的需求而设计一句话函数 lambda表示的是匿名函数.不需要用def来声明, 一句话......
  • 二分图最大匹配数量,匈牙利算法求解 python
    二分图最大匹配数量,匈牙利算法求解python,本质上是找增广回路"""#File:hungary.py#Time:2022/8/2821:08#Author:notomato#Description:#"""......