BIT training short round #4 summary

BIT 校赛 2.5h场第四场总结

  • solved 4/6, rk.1

历程

这场难度跨度有点大,疑似 ABC < D <<<...<<< EF。

直接从 D 开始说,推了一下发现一对 xi,xj 凑出的区间能得到的价格总和是从点 (xi,ci)(xj,cj) 的梯形面积,那一种方案就能划分成若干个 xi,xj 区间,把 xi 排个序,暴力判断划分就可以了。

E 完全不会,看样例 2 是找全局中位数,蒙了一个,结果是错的。

F 那是更不会了。

赛后发现 F 比 E 简单。

部分题解

F - Dominoes

常见的套路是对原图黑白染色连二分图,由于题目说明一定存在密铺方案,所以二分图一定存在完备匹配,也就是黑白点的数量一定相等。

通过操作使二分图不存在完备匹配,简单的做法是选两个黑点或白点,设黑点有 n 个,黑白点总共就有 2×(n2) 个方案,若 n>1000,那这个值大于 106,直接输出。现在考虑 n<1000 的情况。

我们枚举删除的黑点是什么,此时要求出删除一个点后的二分图,白点的必经点的数量,即所有最大匹配都必须包含的点,删除这种白点,该二分图就不存在完备匹配,就是合法的方案。

如何求必经点,扩展一下,求出黑点和白点的必经点:考虑求出任意一组最大匹配,从 S 出发,走残量网络中流量为 1 的边,标记所有左侧黑点,再从 T 出发,走所有流量为 0 的边,标记所有可达的右侧白点,则这些点是非必须点,其补集就是所有必经点。

为什么?以 S 为例子,首先能一步到达的点在该最大匹配中不是匹配点,这些点必然是非必经点。从这些点开始,走偶数条流量为 1 的边,就是一条 非匹配边和匹配边 交替出现的路径(从左侧到右侧为非匹配边,右侧到左侧为匹配边)。通过反转这一条路径,最大匹配不变,但终点处的点失去了原来的匹配,变成了非匹配点,所以这样的点也是非必经点。

T 出发是同理的。

复杂度为 O(n2.5) 因为要跑 n 次网络流。

事实上,对原图跑完最大匹配后,删除一个点,只需要从非必经点开始找一条增广路增广,就能求出新图的最大流,避免了重复网络流,复杂度 O(n2)

题外话

注意区分开 可行,非必经,必经 的概念,可行意味着至少存在一个匹配经过该元素,而非必经可能存在没有任何匹配经过该元素的情况。

这题要求必经点,怎么求出必经边?对残量网络进行点双缩点,一条边是必经边当且仅当:该边是这个最大匹配的匹配边且两端点 u,v 不在同一个点双中。若 u,v 在同一个点双中,那必然存在选择 u,v 这条边的环路,反转后 u,v 这条边变为非匹配边,该边不是必经边。

可行边不一定是必经边的补集,若边 u,v 的两端点在同一点双中,则该边是可行边。

可行点不一定等于非必经点,一个点是可行点当且仅当这个点存在一条可行边出边。

posted @   蒻蒻虫  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示