专栏文章
CF1710E Two Arrays
CF1710E题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mio3yfzp
- 此快照首次捕获于
- 2025/12/02 12:58 3 个月前
- 此快照最后确认于
- 2025/12/02 12:58 3 个月前
首先二分答案 ,将 的看成是 ,否则是 。那么 A 想最后留在 ,B 最后留在 。每一步肯定是在 间交替,可以建一个二分图,将它复制 次,使得每条边 在任意两个复制的图之间都出现。
则这个问题等价于一开始在一个 的点,每次走到二分图的另一边,把上个点删掉,走不了的就输了。这是一个经典结论:
-
二分图博弈,每次走到相邻的一个点并删除上个点,走不了的人输,先手获胜的充要条件是:二分图的所有最大匹配都包含起始点。
- 充分性:由于起始点在所有最大匹配都出现,所以不存在一条从起始点的增广路,使得可以走匹配-非匹配边最后走到一个非匹配点(否则可以把起始点扔掉换成这个点),那么先手就一直走匹配边即可。
- 必要性:假设存在一个不包含起始点的最大匹配,在先手走完第一步后后手可以一直沿着匹配边走,而先手不可能走到一个非匹配点(否则最大匹配 +1),所以先手肯定会输。
那么只需要求出这个二分图的最大匹配,删掉起始点再求一次看看是否相等即可,而复制了 次的二分图 的最大匹配 ,证明如下:
-
,只需要把最大匹配复制 次即可
-
,将最大匹配复制 次后假设存在一条增广路,那么将这个增广路拿出来映射到原图上,显然对于一个 的环,将其删掉增广路依然合法,那么这条增广路就能完全映射到一个原图上了,得出矛盾。
所以只需求出原图最大匹配,可以将 从大到小排序, 的点是左上角的一个凸的轮廓线。考虑 hall 定理,即求出 。那么选出的 中,一定不存在 使得 且 ,这是因为 行的 个数肯定小于等于 行 个数,换成它肯定不劣,列也同理。所以 肯定是一个左上角的矩形(只有前缀的行列),那么枚举行数是 ,再双指针处理一下列 ,当且仅当 列权值 才加入,做个前缀和优化一下即可线性求出。
对于删掉起始点 的最大匹配也类似,不过要将 移到行中 、列中 数量相同的行/列中最后一个就行。
复杂度 。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...