龙空技术网

棋盘中的覆盖问题——每天10分钟,奥数一点通

老范数学 365

前言:

此刻咱们对“c语言棋盘覆盖算法实现”大概比较关切,大家都想要了解一些“c语言棋盘覆盖算法实现”的相关知识。那么小编同时在网摘上汇集了一些对于“c语言棋盘覆盖算法实现””的相关文章,希望姐妹们能喜欢,同学们一起来了解一下吧!

今天,我们就简单介绍关于棋盘中的覆盖问题。

用某种形状的卡片,按一定要求将棋盘覆盖住,就是棋盘的覆盖问题。实际上,这里并不要求一定是某种棋盘,只要是有关覆盖若干行、若干列的方格网的问题,就是棋盘的覆盖问题。

棋盘的覆盖问题可以分为两类:一是能不能覆盖的问题,二是有多少种不同的覆盖方法问题。

例题与方法指导

例1.要不重叠地刚好覆盖住一个正方形,最少要用多少个下图所示的图形?

思路导航:

因为图形由3个小方格构成,所以要拼成的正方形内所含的小方格数应是3的倍数,从而正方形的边长应是3的倍数。经试验,不可能拼成边长为3的正方形。所以拼成的正方形的边长最少是6(见上图),需要用题目所示的图形

36÷3= 12(个)。

思路导航:

在五年级学习“奇偶性”时已经讲过类似问题。左上图共有34个小方格,17个1×2的卡片也有34个小方格,好象能覆盖住。我们将左上图黑白相间染色,得到右上图。细心观察会发现,右上图中黑格有16个,白格有18个,而1×2的卡片每次只能盖住一个黑格与一个白格,所以17个1×2的卡片应当盖住黑、白格各17个,不可能盖住左上图。

例3.下图的七种图形都是由4个相同的小方格组成的。现在要用这些图形拼成一个4×7的长方形(可以重复使用某些图形),那么,最多可以用上几种不同的图形?

思路导航:

先从简单的情形开始考虑。显然,只用1种图形是可以的,例如用7个(7);用2种图形也没问题,例如用1个(7),6个(1)。经试验,用6种图形也可以拼成4×7的长方形(见下图)。

能否将7种图形都用上呢?7个图形共有4×7=28(个)小方格,从小方格的数量看,如果每种图形用1个,那么有可能拼成4×7的长方形。但事实上却拼不成。为了说明,我们将4×7的长方形黑、白相间染色(见右图),图中黑、白格各有14个。在7种图形中,除第(2)种外,每种图形都覆盖黑、白格各2个,共覆盖黑、白格各12个,还剩下黑、白格各2个。第(2)种图形只能覆盖3个黑格1个白格或3个白格1个黑格,因此不可能覆盖住另6种图形覆盖后剩下的2个黑格2个白格。

综上所述,要拼成 4×7的长方形,最多能用上 6种图形。

例4.用1×1,2×2,3×3的小正方形拼成一个11×11的大正方形,最少要用1×1的正方形多少个?

思路导航:

用3个2×2正方形和2个3×3正方形可以拼成1个5×6的长方形(见左下图)。用4个5×6的长方形和1 个 1×1的正方形可以拼成 1个11×11的大正形(见右下图)。

上面说明用1个1×1的正方形和若干2×2,3×3的正方形可以拼成 11×11的大正方形。那么,不用1×1的正方形,只用2×2,3×3的正方形可以拼成11×11的正方形吗?

将11×11的方格网每隔两行染黑一行(见下页右上图)。将2×2或3×3的正方形沿格线放置在任何位置,都将覆盖住偶数个白格,所以无论放置多少个2×2或3×3的正方形,覆盖住的白格数量总是偶数个。但是,右图中的白格有11×7=77(个),是奇数,矛盾。由此得到,不用1×1的正方形不可能拼成11×11的正方形。

综上所述,要拼成11×11的正方形,至少要用1个1×1的小正方形。

标签: #c语言棋盘覆盖算法实现