![](https://img-blog.csdn.net/20161125205045035?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
输入:3 3 4
输出:如图
x=3 ,y=3代表特殊方块的坐标(坐标原点在坐标系左上角)
如图也就是一个 size=4 的L型骨牌的棋盘覆盖问题。
#include <iostream>
#include <cstdio>
using namespace std;
int Board[20][20];
int tile=1;
void ChessBoard(int tr,int tc,int dr,int dc,int size){
if(size==1)
return;
int t =tile++;
int s=size/2;
//覆盖左上子棋盘
if(dr<tr+s && dc<tc+s)
ChessBoard(tr,tc,dr,dc,s);
else{
Board[tr+s-1][tc+s-1]=t;
ChessBoard(tr,tc,tr+s-1,tc+s-1,s);
}
//覆盖右上子棋盘
if(dr<tr+s && dc>=tc+s)
/