问题一:棋盘覆盖问题
对于一个规模为的棋盘,其中有一个方格和其他方格完全不同,称这一方格为特殊方格,且称该棋盘为特殊棋盘,设计一种算法可以使用4种不同的L型骨牌来填充棋牌。
解答:采用分治策略。
第一步:把解决规模为K的棋盘问题分为解决4个规模为K-1的子棋盘问题。若K=1,则返回。
第二步:对于含有特殊方格子棋盘返回第一步。
第三步:将其余子棋盘靠近父棋盘中心的方格设为特殊棋盘,且给予这3个棋盘的特殊方格一个唯一的骨牌号,并返回第一步。
具体算法实现:(基于C语言,
问题一:棋盘覆盖问题
对于一个规模为的棋盘,其中有一个方格和其他方格完全不同,称这一方格为特殊方格,且称该棋盘为特殊棋盘,设计一种算法可以使用4种不同的L型骨牌来填充棋牌。
解答:采用分治策略。
第一步:把解决规模为K的棋盘问题分为解决4个规模为K-1的子棋盘问题。若K=1,则返回。
第二步:对于含有特殊方格子棋盘返回第一步。
第三步:将其余子棋盘靠近父棋盘中心的方格设为特殊棋盘,且给予这3个棋盘的特殊方格一个唯一的骨牌号,并返回第一步。
具体算法实现:(基于C语言,