题意: 给定一个H行W列的矩阵,在矩阵的格点上放带权值的卡片(一个点上能放多张). 现在从每行每列各拿走一张卡片(没有可以不拿),求可以拿到的最大权值. 卡片数N<=1e5,H,W<=1e5 思路: 显然可以构造成一个最大费用流模型:每张卡片到它对应的行列各有一条费用0,容量1的边:源点到每张卡片有一条费用为卡片权值,容量1的边:每个行列到汇点有一条费用0,容量1的边.但是边数有5e5,应该会超时吧? 观察这个图发现除去源点和汇点是一张二分图,想到是否可以利用二分图的性质简化问题. 手动模拟一…
[CF981F]Round Marriage(二分答案,二分图匹配,Hall定理) 题面 CF 洛谷 题解 很明显需要二分. 二分之后考虑如果判定是否存在完备匹配,考虑\(Hall\)定理. 那么如果不合法,假设我们存在一个极小的集合满足连到右侧的点数小于集合大小.因为是极小的,所以删去一个点之后就可以匹配,那么意为着某个点连出去的点和其他所有点有交,既然有交,那么一定这一段区间都可以加入进来形成一个不合法的集合.所以我们可以把存在一个点集不合法变成存在一段连续区间不合法. 假设每个点连向另外一…
基本定义 \(Hall\) 定理是二分图匹配的相关定理 用于判断二分图是否存在完美匹配 存在完美匹配的二分图即满足最大匹配数为 \(min(|X|,|Y|)\) 的二分图,也就是至少有一边的点全部被匹配到了 定理 设 \(M(U)\) 为与 \(U\) 中的点相连的点集,一个二分图 \(U,V(|U|<=|V|)\) 存在完美匹配,满足对于任意点集 \(x∈U\) 都有 \(|M(X)|>=|X|\) 必要性证明 连出去的边数都不足点数,那么显然不能构成完美匹配 充分性证明 假如存在一个满足…
做这个题之前首先要了解判定二分图有没有完备匹配的Hall定理: 那么根据Hell定理,如果任何一个X子集都能连大于等于|S|的Y子集就可以获得完备匹配,那么就是: 题目变成只要不满足上面这个条件就能得到完备匹配,注意到右边的这个dk是一个常数,那么我们就可以只考虑左边最大的是否满足就行了. 那么我们就可以在修改过程中一边在线段树上修改一边查询区间最大值作比较就可以了. #include <bits/stdc++.h> using namespace std; ; typedef long lo…
题意:给出一个长度为 n的数列 a和一个长度为 m 的数列 b,求 a有多少个长度为 m的连续子数列能与 b匹配.两个数列可以匹配,当且仅当存在一种方案,使两个数列中的数可以两两配对,两个数可以配对当且仅当它们的和不小于 h. 题解:先把b排序,要想能匹配,由hall定理,b的每个子集(大小为x)都至少有x条连向b,bi递增,和bi连的边也递增,那么当bi连边大于等于i时即可,所以当min(bi-i)>=0时满足条件 线性扫一遍即可,每个a二分b更新线段树即可 //#pragma GCC opt…
题目链接 https://atcoder.jp/contests/agc037/tasks/agc037_d 题解 这场D题终于不像AGC032D和AGC036D一样神仙了-- 还是可做的吧 虽然考场上没好好想赛后直接看题解了= = 考虑倒推,首先谁都能看出来第二次操作之后要让每一行是这一行对应元素的一个排列: 这样的话我们可以把数\(i\)最后应在的行视为它的颜色,第二次操作就是要把所有颜色\(i\)的数挪到第\(i\)列. 那么第一次操作之后,我们就是要让每列是颜色的一个排列. 考虑二分图匹…
充分性证明就先咕了,因为楼主太弱了,有一部分没看懂 霍尔定理内容 二分图G中的两部分顶点组成的集合分别为X, Y(假设有\(\lvert X \rvert \leq \lvert Y \rvert\)).G中有一组无公共点的边,一端恰好为组成X的点(也就是存在完美匹配)的充分必要条件是:X中的任意k个点至少与Y中的k个点相邻,即对于X中的一个点集W ,令N(W)为W的所有邻居, 霍尔定理即对于任意W,\(\lvert W\rvert \leq \lvert N(W)\rvert\) 证明 1.必…
目录 @description@ @solution@ @accepted code@ @details@ @description@ N 个卡片放在 H*W 的方格图上,第 i 张卡片的权值为 Ai,放在 (Ri, Ci).一个位置可以放置多张卡片. 你可以在每行捡起最多一张卡片,然后在每列捡起最多一张卡片. 求捡起的卡片权值最大和. Constraints 所有值都是整数. 1≤N≤10^5, 1≤H,W≤10^5, 1≤Ai≤10^5, 1≤Ri≤H, 1≤Ci≤W. Input 输入的形…
Problem Statement On a two-dimensional plane, there are N red points and N blue points. The coordinates of the i-th red point are (ai,bi), and the coordinates of the i-th blue point are (ci,di). A red point and a blue point can form a friendly pair w…
匈牙利算法转自于: https://blog.csdn.net/dark_scope/article/details/8880547 匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名.匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法. -------等等,看得头大?那么请看下面的版本: 通过数代人的努力,你终于赶上了剩男剩女的大潮,假设你是一位光荣的新世纪媒人,在你的手上有N个剩男,…