题目:
有一个H*W大小的游戏板,由黑白两种格子组成。现要用3个单位格子的L状板块把白色格子全部覆盖掉。板块可以自由旋转,但不能重叠覆盖黑色格子,或超出游戏版。
计算对给定游戏板有几种覆盖方法。
解决思路:
此题也属于计算组合个数的问题。因此,通过穷举搜索法计算出能够覆盖游戏板的所有可能的组合来解决此问题。首先要处理给定游戏板的白色格子不是3的倍数的情况,此时不可能存在答案,所以要单独处理。之后把白色格子除以3,得到盖上白色格子所需的L型板块数量M。现在可以把整个求解个过程分解为N个小的操作,每个操作视为是放置1个板块。利用递归函数,首先在给定的游戏板中放置1块板块,剩余的将使用递归调用的方式覆盖。
#include
#include
#include
#include
#include
#include
#include
#include
#include