支配及、覆盖集、独立集与匹配

二分匹配

例题:
zoj 1654
将邪恶的小机器人尽量多放,问最多能够放放几个。
将横向可以放的块作为x,将竖向可以放的块作为y,二分匹配即可。
poj 1325/zoj 1364
开始怎么想都想不到啊。。。二分图的点覆盖数=匹配数
zoj 1140/poj 1469
裸题,但一开始在poj提交的时候竟然MLE了。。。略囧。。。后来事实证明是,在标记从x集合到y集合的映射矩阵的时候,只需要match[n][m]即可,受昨天做题影响,我做成了match

[n+m+1][n+m+1]。。。
╮(╯▽╰)╭
zoj 2429/poj 2125
最小点权覆盖集:点权之和最小的覆盖集,用最小割做,详细可以参考《最小割模型在信息学竞赛中的应用》
注意需要将最小割输出。输出方法是从源点开始dfs,并且标记能够dfs到的顶点(如所给样例当中,1'->3也是可以遍历到的)最后凡是没有遍历到的i和遍历到的i'都是最小割。
在zoj上tle了。。。囧
zoj 1516
╮(╯▽╰)╭。。。又一次给大神跪了。。。本来感觉像是一个状圧dp。。。后来发现,只要把图像看做黑白相间的一块块小格子,然后拿黑的和白的进行二分匹配即可。。。
hdu 1569/hdu 1565
都是方格取数,状圧dp太大行数太大不符。具体做法和上一道题目类似,也是要国际象棋棋盘化,然后做最大点权独立。最大独立点权=总权值-最小点权覆盖。注意取最大流的时候需要将
zoj 1137/poj 1466
最大独立集,按照原图先做二分匹配,然后找到的匹配数会是实际匹配数的两倍,count/2即可。不过poj上是一个稀疏图,得用邻接链表做,邻接矩阵会MLE。。。
zoj 1525/poj 1422
最小路径覆盖=顶点数-匹配数。
zoj 1059/poj 1043
八数码问题,或者九宫格问题。先做一次二分匹配,然后遍历每条边,如果删除这条边之后的匹配数变小,则该条边是唯一匹配方案。
这里运用了Hall匹配定理:二分图G的两个部分为X、Y,若存在从X到Y的完全匹配当且仅当对任意S∈X,都有|N(S)|≥|S|。
从而推出了Hall婚配定理:二分图G的两个部分X、Y 满足|X|=|Y|时,图G存在完美匹配当且仅当对任意的子集S∈X,都有 |N(S)|≥|S|。
对于结点v,我们用n(v)表示所有与v邻接的结点集。对于图G结点集的任意子集S,N(S)表示所有与S中的结点相邻接的结点集的并集,即N(S)=∪n(v)。
可以参考:
http://www.docin.com/p-357099433.html
注:本题人名和id可以相同。。。因为这个wa了。。。囧。。。
poj 3041
对于含有小行星的一个点,将u连向v,然后裸的二分匹配。
hdu 2444
判断是否是二分图+匈牙利。判断二分图直接用bfs一次即可,而后的二分图匹配结果就类似于zoj 1137/poj 1466,将所有顶点看做两倍,最后得出的匹配数除以二就是最后结果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值