问题描述
在一个2的k次方 x 2的k次方(1<=k<=10)个方格组成的棋盘中,恰有一个方格是黑色的,其他方格都是白色。你的任务是要用图示的由三个方格构成的4种不同形态的L型骨牌覆盖所有的白色方格,且任何一个白色方格不能同时被两次或多个次覆盖。

输入格式
第一行一个整数k,表示棋盘的大小为2k x 2k
第二行是两个整数,代表特殊方格所在行号和列号。
输出格式
一个以空格为间隔的2k x 2k数字矩阵,表示一种可行的覆盖方案
同一块骨牌用相同的数字表示,用数字0表示黑色方格
按矩阵从左到右,从上到下的顺序将数字由小到大输出,详情见样例。
样例输入
样例输入1:
1
1 1
样例输入2:
2
2 1
样例输入3:
3
3 2
样例输出
样例输出1:
0 1
1 1
样例输出2:
1 1 2 2
0 1 3 2
4 3 3 5
4 4 5 5
样例输出3:
1 1 2 2 3 3 4 4 1 5 5

博客介绍了如何利用递归方法解决一个棋盘覆盖问题,其中棋盘是2的k次方乘以2的k次方的,有一个方格是黑色,需要使用L型骨牌覆盖所有白色方格。内容包括输入输出格式、样例解答及递归函数的实现思路,主要涉及C++编程。

395

被折叠的 条评论
为什么被折叠?



