提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
题目描述:紫皮书P229.在第一次看到这个题目时,我脑子里想的还是之前学的回溯法,一个个地往方格里代L型牌,但是能感觉到效率不太高,参考了视频之后,发现用分治法特别好,同时要注意,2的k次方大大简化了题目。
一、思路
分治法就是分而治之,那这个题目该怎么分呢?在“分”时,有一个最佳的分法(能这样分更好)——均匀地分,那这个题目又怎么均匀地分呢?显然可以按行均匀分、按列均匀分、按块均匀分等等,分多少行、分多少列、分多少块同样也是问题。除此之外,“分”还要求分的每个小问题相互独立且具有相同的性质。可是只有一个黑色方格,分完之后也只会有一个子问题有这个黑色方格,因此就简单地均匀分不能满足这个条件。联想到黑色方格不能被覆盖,白色方格不能同时被两个或更多牌覆盖,可以在分的时候,将每个没有黑色方格的子区域上都有一个白色方格被覆盖,因为一个L型牌只占三个方格,所以可以认为一共要均匀地分成四个子问题,其中一个子区域中有黑色方格,另外三个均有一个被L型牌覆盖,而由于L型牌的结构特征,这三个子区域必须连在一起,所以是按块分,而且得是