
二分图匹配
IcePrincess_1968
这个作者很懒,什么都没留下…
展开
-
BZOJ1143: 祭祀 题解
这是一道结论题 题目抽象一下就是要在一个DAG上求一个最大点集,使得两两不可达 上网搜了一下,这个东西叫做最长反链 根据Dilworth定理,最长反链=最小链覆盖 最小链覆盖可以这样搞:我们先把图的传递闭包求一下,这个可以用floyd,然后建一个二分图,如果a–>b有边,就从左边的a向右边的b连一条边 求一个最大匹配,然后用n减一下就是答案了 可以这样理解:刚开始我有n条链,每条...原创 2018-06-07 22:30:53 · 561 阅读 · 1 评论 -
TopCoder SRM468C: MallSecurity 题解
这道题模型还是挺显然的 这看起来是一个N分图,但当N是偶数的时候,这就是一个二分图,奇数层的在左边,偶数层的在右边,原题就是要求一个二分图的最大独立集,∣最大独立集∣=N−∣最大匹配∣∣最大独立集∣=N−∣最大匹配∣\mid最大独立集\mid=N-\mid最大匹配\mid (我脑残了忘了这个结论还用最小割推了一波:要求最多能选中多少个点,相当于求最少扔掉多少个点,对于每条边,左边的点连向源点,...原创 2018-04-15 22:04:38 · 294 阅读 · 0 评论 -
BZOJ1059: 矩阵游戏 题解
我们考虑什么样的棋盘是符合题意的,我们会发现同一行和同一列如果有多个黑格子,那么他们之中最多有一个能成为最后的对角线 进一步发现,我们如果能在棋盘上找到n个黑格子,使得他们的行号,列号两两不同,那么就能拼出对角线,这个条件等价于每个行和列都被一枚棋子匹配了一次 于是想到我们对每个行建一个点,对每一个列建一个点,形成一个二分图,对于在a[i][j]的黑格子,就在行的i和列的j之间连一条边,最后跑...原创 2018-04-11 20:18:38 · 281 阅读 · 0 评论