![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分图匹配
逐梦起航-带梦飞翔
为了更加长远的快乐!
展开
-
匈牙利算法—介绍与基本用途
匈牙利算法应用于二分图(即可以分为两大部分,且个部分内不连接的图)匹配的问题,它的时间复杂度为O(nm)。它的基本原理是增广路。它的用途主要有三:1、单纯二分图匹配;2、最小点覆盖;3、最大独立集。下面,我将一一介绍。一、单纯二分图匹配例题1:有n只公牛和m只母牛,然后每只公牛都可以和几只的母牛配对。在每只公牛只能配对一只母牛的情况下,求能为牛们配对最多多少对?思路:公牛是二分图的一个集合,母牛也...原创 2017-03-31 14:06:44 · 5609 阅读 · 0 评论 -
二分图中的可行边与必须边—求法
定义二分图的最大匹配的方案可能是有多种的,其中无论如何都要选的边叫必须边;可选可不选,选了也能够得到最大匹配的叫可行边。简化版:完备匹配在能够完备匹配的二分图中,求必须边和可行边相对简单,我们先来讨论这个问题。先对这个二分图(左边右边都是n个点)做一次最大匹配,现在所有的点都是匹配点了,匹配边有n条。在此图中,把匹配边反过来,即从右往左连,非匹配边不变,仍是从左往右。一条边(x...原创 2018-10-07 11:55:42 · 1069 阅读 · 3 评论 -
洛谷1525 关押罪犯(并查集)(黑白染色)
题目洛谷1525关押罪犯题解1贪心+扩展域并查集把怨气值排序,大的当然要分配到两个不同的监狱。一个点拆成两个点,分两层,不同监狱连不同层。代码#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=20010,m...原创 2018-10-07 13:36:15 · 293 阅读 · 0 评论 -
二分图中的各类算法—方案
%%%好强的总结%%%做了几道题,我也想总结一发二分图的求方案的一些小点子,不过当然不如上面那个人强,所以会忽略掉一些定理正确性的证明,只是讲讲方法。①最大匹配方案这个是SB问题吧,直接一点match[i]与i匹配,其中match[i]是左部点,i是右部点。②最小点覆盖方案先做一次最大匹配,然后从左部的非匹配点出发,尝试进行增广(一定会失败),并对沿途的节点进行标记。最后取所有...原创 2018-11-08 20:17:03 · 679 阅读 · 0 评论 -
洛谷CF590E Birthday(AC自动机)(最小路径可重复点覆盖方案)
题意给你 n 个字符串,选出最大的一个集合,满足两两之间不是对方的子串。题解AC自动机+最小路径可重复点覆盖方案=AC自动机+传递闭包+乱搞求子串?KMP?这有我这种机智的人才会想到?AC自动机!AC自动机是用来处理前缀的问题,看起来不适用,但它的fail指针太强大了!可以想象假设现在有一个串,它在trie树中以一条链的形式存储,从这条链中的每个点出去,扩展开来的就是它的一个子串。...原创 2018-11-08 20:34:57 · 619 阅读 · 0 评论