棋盘覆盖问题——分治

本文介绍了棋盘覆盖问题的分治解决方案。通过将棋盘均匀分为四个象限,处理含有黑色方格的特殊子区域,并利用L型牌的特性,解决每个子区域的覆盖问题。代码示例展示了读入数据的部分,强调在实际应用中考虑问题的划分策略。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

棋盘覆盖问题——分治


前言

题目描述:紫皮书P229.在第一次看到这个题目时,我脑子里想的还是之前学的回溯法,一个个地往方格里代L型牌,但是能感觉到效率不太高,参考了视频之后,发现用分治法特别好,同时要注意,2的k次方大大简化了题目。


一、思路

分治法就是分而治之,那这个题目该怎么分呢?在“分”时,有一个最佳的分法(能这样分更好)——均匀地分,那这个题目又怎么均匀地分呢?显然可以按行均匀分、按列均匀分、按块均匀分等等,分多少行、分多少列、分多少块同样也是问题。除此之外,“分”还要求分的每个小问题相互独立且具有相同的性质。可是只有一个黑色方格,分完之后也只会有一个子问题有这个黑色方格,因此就简单地均匀分不能满足这个条件。联想到黑色方格不能被覆盖,白色方格不能同时被两个或更多牌覆盖,可以在分的时候,将每个没有黑色方格的子区域上都有一个白色方格被覆盖,因为一个L型牌只占三个方格,所以可以认为一共要均匀地分成四个子问题,其中一个子区域中有黑色方格,另外三个均有一个被L型牌覆盖,而由于L型牌的结构特征,这三个子区域必须连在一起,所以是按块分,而且得是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值