PKU3020-Antenna Placement

本文介绍了一种使用1*2小矩形覆盖棋盘上棋子的算法,通过构造二分图并求最大匹配来找到最少的矩形数量。具体包括棋子染色、构建二分图、匈牙利算法实现等内容。

题意简述:
在一个N*M的棋盘上,某些格子有棋子,用1*2的小矩形去覆盖棋盘,可以重叠覆盖,可以覆盖没有棋子的格子。要求用最少的矩形数覆盖所有棋子。
 
算法分析:
先对棋子进行黑白染色,使得任意相邻的棋子都染了不同的颜色。然后让白色棋子作二分图的X结点,黑色棋子作二分图的Y节点,相邻的棋子之间连边,则其最大匹配数即为最多的能覆盖两个棋子的互不重叠的矩形数,设为x,则总共所需矩形数就等于s-x*2+x=s-x(s表示棋子总数)因此x最大时必有最优解等于s-x。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值