知识点简单总结——带花树(一般图最大匹配) 前置知识 二分图最大匹配(匈牙利算法) 一般图最大匹配 首先思考一下一般图和二分图的区别在哪里。 很明显二分图没有奇环。 那么只要能处理好奇环的结果就好。 首先像匈牙利算法一样每次选择一个点开始匹配并进行一次新的黑白染色,起点为黑色。 进行bfs,用队列处 ...
分类:
其他好文 时间:
2020-07-23 15:45:31
阅读次数:
74
http://acm.hdu.edu.cn/showproblem.php?pid=3446 ##题意 一个棋盘,有个KING,有一些能走的点,每次只能走到没走过的地方,没路可走的输,求先手是否必胜。 ##题解 一般图最大匹配,判断KING是否一定在最大匹配中,在的话一定先手必胜. 在最大匹配一定先 ...
分类:
其他好文 时间:
2020-06-10 19:25:22
阅读次数:
53
#include<bits/stdc++.h> #pragma GCC optimize(3) using namespace std; const int N=1009,M=100009; int n,m,ans,ord,q[M],pre[N]; int ql,qr,dfn[N],lk[N]; i ...
分类:
其他好文 时间:
2020-06-03 00:40:13
阅读次数:
54
```#include #include #include #include #include using namespace std;const int MAXN = 250;int N; //点的个数,点的编号从1到Nbool Graph[MAXN][MAXN];int Match[MAXN];... ...
分类:
其他好文 时间:
2020-03-07 13:27:56
阅读次数:
67
参考博客:http://blog.sina.com.cn/s/blog_95ec9e7401018bga.html https://www.cnblogs.com/owenyu/p/6858508.html 用Dinic实现的二分图匹配的时间复杂度其实是O(M*N^0.5),这也许能够解释为什么一般 ...
分类:
其他好文 时间:
2019-09-07 22:27:02
阅读次数:
96
~~带花树,那是啥?~~ 每次复杂度 $O(nm)$ 随机5次似乎就卡不掉(起码现在uoj上没有能卡掉这个的 cpp include using namespace std; int read() { int x = 0, c = getchar(); while (!isdigit(c)) c = ...
分类:
其他好文 时间:
2019-03-04 20:37:09
阅读次数:
174
一般图最大匹配 从前一个和谐的班级,所有人都是搞OI的。有 $n$ 个是男生,有 $0$ 个是女生。男生编号分别为 $1,…,n$。 现在老师想把他们分成若干个两人小组写动态仙人掌,一个人负责搬砖另一个人负责吐槽。每个人至多属于一个小组。 有若干个这样的条件:第 $v$ 个男生和第 $u$ 个男生愿 ...
分类:
其他好文 时间:
2018-12-24 19:49:46
阅读次数:
114
<题目链接> 题目大意: 给你n个点和m条边,每条边代表两点具有匹配关系,问你有多少对匹配是冗余的。 解题分析: 所谓不冗余,自然就是这对匹配关系处于最大匹配中,即该匹配关系有意义。那怎样判断该匹配是否在最大匹配中呢?我们可以枚举每一对匹配,然后对其进行取消其匹配关系,对其余的匹配跑一遍最大匹配,如 ...
分类:
其他好文 时间:
2018-11-20 01:24:26
阅读次数:
162
带花树裸题,感觉带花树强强……不会的勿看此文,解释的可能不对,只是给自己看的!!!如题,带花树即为求一般图最大匹配算法(匈牙利与dinic为二分图最大匹配)。推荐论文:2015年《浅谈图的匹配算法及其应用》(长郡中学 ——陈胤伯)。论文当中有对于带花树算法的详细解析,在这里只想记录一下算法的基本流程 ...
分类:
其他好文 时间:
2018-06-29 18:29:05
阅读次数:
214
Sol 这做法我是想不到$TAT$ 每个筐子拆成三个相互连边 球向三个筐子连边 然后跑一般图最大匹配 这三个筐子间最多有一个匹配 那么显然每个球一定会放在一个筐子里,一定有一个匹配 如果筐子间有匹配,则有一个半空的筐子,因为它一定只匹配了小于等于$1$个球 答案为匹配数$ n$ 使答案最大即匹配数最 ...
分类:
其他好文 时间:
2018-03-27 18:40:21
阅读次数:
183