BIT training short round #4 summary
BIT 校赛 2.5h场第四场总结
- solved 4/6, rk.1
历程
这场难度跨度有点大,疑似 ABC < D <<<...<<< EF。
直接从 D 开始说,推了一下发现一对 \(x_i,x_j\) 凑出的区间能得到的价格总和是从点 \((x_i,c_i)\) 到 \((x_j,c_j)\) 的梯形面积,那一种方案就能划分成若干个 \(x_i,x_j\) 区间,把 \(x_i\) 排个序,暴力判断划分就可以了。
E 完全不会,看样例 \(2\) 是找全局中位数,蒙了一个,结果是错的。
F 那是更不会了。
赛后发现 F 比 E 简单。
部分题解
F - Dominoes
常见的套路是对原图黑白染色连二分图,由于题目说明一定存在密铺方案,所以二分图一定存在完备匹配,也就是黑白点的数量一定相等。
通过操作使二分图不存在完备匹配,简单的做法是选两个黑点或白点,设黑点有 \(n\) 个,黑白点总共就有 \(2\times \binom{n}{2}\) 个方案,若 \(n > 1000\),那这个值大于 \(10^6\),直接输出。现在考虑 \(n < 1000\) 的情况。
我们枚举删除的黑点是什么,此时要求出删除一个点后的二分图,白点的必经点的数量,即所有最大匹配都必须包含的点,删除这种白点,该二分图就不存在完备匹配,就是合法的方案。
如何求必经点,扩展一下,求出黑点和白点的必经点:考虑求出任意一组最大匹配,从 \(S\) 出发,走残量网络中流量为 \(1\) 的边,标记所有左侧黑点,再从 \(T\) 出发,走所有流量为 \(0\) 的边,标记所有可达的右侧白点,则这些点是非必须点,其补集就是所有必经点。
为什么?以 \(S\) 为例子,首先能一步到达的点在该最大匹配中不是匹配点,这些点必然是非必经点。从这些点开始,走偶数条流量为 \(1\) 的边,就是一条 非匹配边和匹配边 交替出现的路径(从左侧到右侧为非匹配边,右侧到左侧为匹配边)。通过反转这一条路径,最大匹配不变,但终点处的点失去了原来的匹配,变成了非匹配点,所以这样的点也是非必经点。
从 \(T\) 出发是同理的。
复杂度为 \(O(n^{2.5})\) 因为要跑 \(n\) 次网络流。
事实上,对原图跑完最大匹配后,删除一个点,只需要从非必经点开始找一条增广路增广,就能求出新图的最大流,避免了重复网络流,复杂度 \(O(n^2)\)。
题外话
注意区分开 可行,非必经,必经 的概念,可行意味着至少存在一个匹配经过该元素,而非必经可能存在没有任何匹配经过该元素的情况。
这题要求必经点,怎么求出必经边?对残量网络进行点双缩点,一条边是必经边当且仅当:该边是这个最大匹配的匹配边且两端点 \(u,v\) 不在同一个点双中。若 \(u,v\) 在同一个点双中,那必然存在选择 \(u,v\) 这条边的环路,反转后 \(u,v\) 这条边变为非匹配边,该边不是必经边。
可行边不一定是必经边的补集,若边 \(u,v\) 的两端点在同一点双中,则该边是可行边。
可行点不一定等于非必经点,一个点是可行点当且仅当这个点存在一条可行边出边。

浙公网安备 33010602011771号