[CF981F]Round Marriage[二分+霍尔定理]】的更多相关文章

题意 洛谷 分析 参考了Icefox 首先二分,然后考虑霍尔定理判断是否有完美匹配.如果是序列的话,因为这里不会出现 \(j<i,L(i)<L(j)\) 或者 \(j<i,R(i)<R(j)\) 的情况,所以可以不用线段树,直接判断是否存在 \(j,i(j<i)\) 满足 \(R(i)-L(j)+1<i-j+1\) (只需要判断连续的一段). 因为是环,考虑将 \(a,b\) 数列分别倍长,但是发现环上到达某个 \(b\) 仍然需要讨论.此时只需要在最左边和最右边再加一…
[CF981F]Round Marriage(二分答案,二分图匹配,Hall定理) 题面 CF 洛谷 题解 很明显需要二分. 二分之后考虑如果判定是否存在完备匹配,考虑\(Hall\)定理. 那么如果不合法,假设我们存在一个极小的集合满足连到右侧的点数小于集合大小.因为是极小的,所以删去一个点之后就可以匹配,那么意为着某个点连出去的点和其他所有点有交,既然有交,那么一定这一段区间都可以加入进来形成一个不合法的集合.所以我们可以把存在一个点集不合法变成存在一段连续区间不合法. 假设每个点连向另外一…
题目 LOJ523 官方题解 分析 由于某些原因,以下用「左侧点」和「右侧点」分别代替题目中的「妹子」和「男生」. 根据题意,显然能得出一个左侧点只能向一个或两个右侧点连边.这似乎启发我们把左侧点不看成点,而看成关于右侧的两个点之间的「关系」(更正:不看题解根本想不到).换句话说,把左侧点看成边,右侧点看成点,就得到了一张 \(n\) 个点 \(m\) 条边的新图.如果一个左侧点向 \(a\) 和 \(b\) 两个右侧点连边,就在新图中加入一条连接 \((a,b)\) 的边(左侧点只连接一个右侧…
题目描述 $Treeland$国有$n$座城市,其中$1$号城市是首都,这些城市被一些单向高铁线路相连,对于城市$i\neq 1$,有一条线路从$i$到$p_i(p_i<i)$.每条线路都是一样长的,通过花费时间也是一样长的.这个国家的每一个城市都有一种特产,整个国家有$m$种特产(不同城市可能又相同的特产),其中城市$i$的特产用$a_i$表示.小$C$和他的几位$A$队爷朋友(总共$c$人,$2\leqslant c\leqslant 5$)正在$Treeland$国游玩,他们准备在一个城市…
题面戳我 Solution 二分图是显然的,用二分图匹配显然在这个范围会炸的很惨,我们考虑用霍尔定理. 我们任意选取穿\(l,r\)的号码鞋子的人,那么这些人可以穿的鞋子的范围是\(l,r+d\),这个时候我们可以根据霍尔定理得出满足人人有鞋子穿的时候的式子是 令\(sum[i]\)表示穿\(i\)号鞋子的人数 \[\sum^r_{i=l} sum[i] \leq (r-l+1+d)*k\] 我们把这个式子整理下: \[\sum^r_{i=l} (sum[i]-k) \leq d*k\] 我们会…
bzoj3693 Solution: 显然我们可以把人和位置抽象成点,就成了一个二分图,然后就可以用霍尔定理判断是否能有解 一开始我随便YY了一个\(check\)的方法:就是每次向后一组,我们就把那一组可以位置标记为\(true\),用线段树存储,比如我们处理到了第\(i\)组,线段树里面就是前面\(i\)组可以放在那一些位置上,\(check\)总共可以放的位置数目不小于前\(i\)组总人数就继续,否则输出\(No\),这样显然是错的,很容易举出反例,于是我进行了一下的神奇操作. 我们先按照…
题面 题目大意: 给你\(m\)张椅子,排成一行,告诉你\(n\)个人,每个人可以坐的座位为\([1,l]\bigcup[r,m]\),为了让所有人坐下,问至少还要加多少张椅子. Solution: 为什么加椅子?我们可以在最左边或最右边一直加直到人人都有座位. 首先这道题目抽象成二分图很简单,然后我们可以只要求解出人与座位的最大匹配是多少,总人数减去即可,但跑二分图最大匹配显然会超时,我们就可以往霍尔定理方面想. 然后你还需要知道一个霍尔定理推论:假设某个人的集合为\(X\),这个集合所对应的…
原文链接https://www.cnblogs.com/zhouzhendong/p/CF1009G.html 题目传送门 - CF1009G 题意 给定一个长度为 $n$ 的字符串 $s$ .并给定 $m$ 条限制,第 $i$ 条限制声明了第 $i$ 个位置的字符可以取的值.如果没有声明表示可以任意取值. 求一个字符串 $s$ 的排列,在满足 $m$ 条限制的同时,使得字典序最小.如果不存在满足限制条件的字符串,则输出 $-1$. $n,m\leq 10^5$,字符集 $ = \{'a','b…
题意 一共 \(n\) 只球队,两两之间会进行一场比赛,赢得一分输不得分,给出每只球队最后的得分,问能否构造每场比赛的输赢情况使得得分成立.多组数据 \(T\le 10,n\le 5\times 10^4\) 分析 容易想到一个网络流的模型:把每场比赛看成点,连向对应的两只队伍.实际上可以把每只队伍的拆成 \(a_i\) 个点就是二分图的模型了. 考虑霍尔定理,队伍和队伍之间的区别只在于 \(a\) ,所以考虑枚举队伍数量 \(k\) ,判断最极端的 \(k\) 只队伍即可.\(a\) 最小的…
题意 给你一个长为 \(n\) 的串,字符集为 \(a,b,c,d,e,f\) .你可以将整个串打乱之后重新放置,但是某些位置上有一些限制:必须放某个字符集的字符.问字典序最小的串,如果无解输出 "Impossible". \(n\le 10^5\) 分析 每次贪心地选择字典序最小的字符判断,判断后面是否可以完美匹配.可以考虑霍尔定理. 这里有两种想法,一种是对于每种字符开一个 \(bitset​\) 记录被包含的位置然后求并集(字符匹配位置):另一种则是考虑 "非完美算法&…