首页 > 其他分享 >二分图最大匹配

二分图最大匹配

时间:2023-04-19 18:44:50浏览次数:36  
标签:二分 匹配 最大 idx int ne return add co

#include <bits/stdc++.h>

using namespace std;

const int N = 2e5 + 10;

int e[N], h[N], ne[N], idx;

void add(int a, int b)
{
    e[++ idx] = b, ne[idx] = h[a], h[a] = idx;
}

int co[N];

bool check(int u, int c)
{
    co[u] = c;
    
    for(int i = h[u]; ~i; i = ne[i])
    {
        int j = e[i];
        if(!co[j])
        {
            if(!check(j, 3 - c)) return false;
        }
        else if(co[j] == c) return false;
    }
    
    return true;
}

int main()
{
    int n, m;
    
    cin >> n >> m;
    
    memset(h, -1, sizeof h);
    
    for(int i = 1; i <= m; i ++)
    {
        int a, b;
        cin >> a >> b;
        add(a, b), add(b, a);
    }
    
    for(int i = 1; i <= n; i ++)
    {
        if(!co[i])
        {
            if(!check(i, 1))
            {
                cout << "No\n";
                return 0;
            }
        }
    }
    
    cout << "Yes\n";
    
    return 0;
}

标签:二分,匹配,最大,idx,int,ne,return,add,co
From: https://www.cnblogs.com/lfyszy/p/17334299.html

相关文章

  • 查找(1.顺序查找、2.二分法查找)
    顺序查找既是for循环,在循环内用if匹配输入的值是否有对等,有即返回对应结果如果for循环下,没有对应的匹配值,要返回提示没找到用如下方法二分法查找1.必须是一个有序的列表2.先找到数组的中间值,拿输入值与其配对3.如果值是小了往左边选中间值,再匹对。反之向右.........
  • 八百字讲清楚——BCEWithLogitsLoss二分类损失函数
    BCEWithLogitsLoss是一种用于二分类问题的损失函数,它将Sigmoid函数和二元交叉熵损失结合在一起。假设我们有一个大小为NNN的二分类问题,其中每个样本......
  • 自定义Mybatis-plus插件(限制最大查询数量)
    自定义Mybatis-plus插件(限制最大查询数量)需求背景​ 一次查询如果结果返回太多(1万或更多),往往会导致系统性能下降,有时更会内存不足,影响系统稳定性,故需要做限制。解决思路1.经分析最后决定,应限制一次查询返回的最大结果数量不应该超出1万,对于一次返回结果大于限制的时候应该......
  • 【每日一题】分隔数组以得到最大和
    1043.分隔数组以得到最大和关键词:动态规划、递归题目来源:1043.分隔数组以得到最大和-力扣(Leetcode)题目描述T动态规划T递归给你一个整数数组arr,请你将该数组分隔为长度最多为k的一些(连续)子数组。分隔完成后,每个子数组的中的所有值都会变为该子数组中的最大值。......
  • 算法刷题系列——二分查找
    704.二分查找(2023.4.17)给定一个 n 个元素有序的(升序)整型数组 nums和一个目标值 target ,写一个函数搜索 nums 中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例 2:......
  • 串的模式匹配(BF算法)
    【问题描述】串的模式匹配算法BF的实现与应用。【输入形式】第一行输入主串s;第二行输入模式串t;输入串中均不包含空格字符。【输出形式】模式串在主串s中的出现的每一个位置序号。若一次都未匹配到,则输出0。【样例输入1】ababcabcacbabab【样例输出1】13612【样例输入2】11111345......
  • 洛谷P1249最大乘积,数论找规律
    最大乘积题目描述一个正整数一般可以分为几个互不相同的自然数的和,如\(3=1+2\),\(4=1+3\),\(5=1+4=2+3\),\(6=1+5=2+4\)。现在你的任务是将指定的正整数\(n\)分解成若干个互不相同的自然数的和,且使这些自然数的乘积最大。输入格式只一个正整数\(n\),(\(3\leqn\leq10000\))。......
  • 动态规划:剑指 Offer 63. 股票的最大利润
    题目描述:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少? 限制:0<=数组长度<=10^5    classSolution{publicintmaxProfit(intprices[]){//状态定义:dp[i]记为利润profit//前i......
  • 节点与其祖先之间的最大差值(树,二叉树,深度优先搜索)
    1、节点与其祖先之间的最大差值(难度中等)给定二叉树的根节点root,找出存在于不同节点A和B之间的最大值V,其中V=|A.val-B.val|,且A是B的祖先。(如果A的任何子节点之一为B,或者A的任何子节点是B的祖先,那么我们认为A是B的祖先)/***Definitionforabinary......
  • 26、字符串匹配 KMP 算法
    1、KMP算法的基本原理2、KMP算法的正确性证明3、什么是LPS数组4、LSP数组的计算5、实现LPS数组6、KMP算法的实现7、复杂度分析......