随笔分类 - 网络流----二分图最大匹配
摘要:pro: https://www.luogu.com.cn/problem/P2469 sol: 发现这个模型和最小路径覆盖有着密切的联系 考虑最小路径覆盖是怎么实现的 一开始用n条长度为1的路径去覆盖n个点 使初始答案为n 每个点拆成入点和出点 对于原图每条边x >y 然后x的出点和y的入点连边
阅读全文
摘要:注意,题意的意思是已经有了一些椅子。 如果要加椅子的话,显然每次加入的椅子都应该是可以和任何一个人匹配的椅子。(即位置为1或者m) 考虑最少需要加入的椅子数量。 根据霍尔定理,假设现在有一个集合|s|和它的连边集合|t|。 如果|s| |t|=k的话,我们至少需要加k把椅子才能满足条件。 因此,最少
阅读全文
摘要:https://loj.ac/problem/6062 直接套用霍尔定理。 由于A有多个选择,考虑维护B是否合法。 首先B数组的顺序显然是没有用的,可以直接排序。 然后每个A就都变成了向一个后缀连边。 对于B,原本需要check每一个集合是否满足|u|=0 因此,只需要维护F【i】 的最小值即可。
阅读全文
摘要:先是几个比较简单的定理 最大匹配=最小点覆盖=n 最小边覆盖=n 最大独立集 最小点覆盖和最大独立集互补 霍尔定理 对于任意集合a,都满足|a|
阅读全文
摘要:给出n个数字,给出m种操作。 每个操作形如:可以使第x个数和y个数同时除以一个不为1的公约数,从而使得匹配数+1。 求最大可能的匹配数。 (n
阅读全文
摘要:很容易想到去吧棋盘模型转为二分图。 发现是一个类似行列匹配的问题。 进一步,如果每一个行都可以找到一个列与之配对的话,一定可以通过交换满足要求。 直接dinic求二分图最大匹配即可。 cpp include include include include include include includ
阅读全文