首页 > 编程语言 >匈牙利算法

匈牙利算法

时间:2022-09-02 15:56:15浏览次数:47  
标签:idx int 匈牙利 ne vis 算法 addEdge match

#include<bits/stdc++.h>
using namespace std;
const int N = 550, M = 1e5 + 10;
int n1, n2, m, h[N], e[M], ne[M], idx;
int match[N], ans;
bool vis[N];

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

bool find(int u)
{
    for(int i = h[u]; ~i; i = ne[i])
    {
        int j = e[i];
        if(!vis[j])
        {
            vis[j] = true;
            if(!match[j] || find(match[j]))
            {
                match[j] = u;
                return true;
            }
        }
    }
    return false;
}

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

    for(int i = 1; i <= n1; i ++ )
    {
        memset(vis, false, sizeof vis);
        if(find(i)) ans ++ ;
    }

    cout << ans << endl;


    return 0;
}

 

标签:idx,int,匈牙利,ne,vis,算法,addEdge,match
From: https://www.cnblogs.com/leyuo/p/16650194.html

相关文章

  • AcWing算法基础课---第三讲基础算法---01DFS和BFS
    DFSAcWing842.排列数字#include<iostream>usingnamespacestd;constintN=10;intn;intpath[N],st[N];voiddfs(intu){if(u==n){......
  • 机器学习中的数值查找算法(3)——哈希查找算法
    原文链接:机器学习中的数值查找算法(3)——哈希查找算法–每天进步一点点(longkui.site)0.前言前面介绍的查找算法均是基于有序序列的查找方式,哈希查找是通过计算元素......
  • letcode算法--6.字符串转换整数 (atoi)
    请你来实现一个 myAtoi(strings) 函数,使其能将字符串转换成一个32位有符号整数(类似C/C++中的atoi函数)。函数 myAtoi(strings)的算法如下:读入字符串并丢弃无......
  • JAVA进阶--常用时间API、包装类、正则表达式、Array类、Lambda表达式、常见算法--202
    第一节 Date日期对象1、日期对象如何创建,如何获取时间毫秒值Datedate=newDate();Longtime=date.getTime();2、时间毫秒值怎么恢复成......
  • 【BFS】算法模板与思路
    1.BFS算法的基础理论是什么?BFS算法名叫宽度优先搜索,虽然我能理解深度优先搜索,但我却不是很能理解宽度优先搜索。一个很关键的点在于:宽度优先搜索是一个迭代的算法,不是递......
  • 35 | JAVA中的Collections(类似C++中的算法)
    CollectionsCollections是JDK提供的工具类,同样位于java.util包中。它提供了一系列静态方法,能更方便地操作各种集合。注意Collections结尾多了一个s,不是Collection!我们一......
  • Problem P01. [算法课分治] 最大二叉树
    需要注意的:scanf()的返回值是EOF,输入结束通过指针指向左右子树的二叉树构建#include<iostream>#include<bits/stdc++.h>#include<cstdio>usingnamespacestd;......
  • 最新小红书数据 小红书爬虫 小红书接口 xhs 小红书算法 小红书api
    最新版小红书APP接口,需要交流的朋友联系,少量勿扰,谢谢!只取APP公开数据,不做违法事情,如有侵犯贵公司,请联系删除!博主详情笔记详情博主笔记列表笔记评论关键词搜索等等接......
  • 共识算法 CAP BASE
    共识算法(ConsensusAlgorithm)共识算法是用来保证分布式系统一致性的方法。它能保证所有节点的数据相同并且一个节点发起的提案可以被其他节点同意。根据解决的场景是否......
  • 普里姆(prim)算法
    1.应用场景-修路问题看一个应用场景和问题:1)有胜利乡有7个村庄(A,B,C,D,E,F,G),现在需要修路把7个村庄连通2)各个村庄的距离用边线表示(权),比如A–B距离5......