残缺棋盘游戏
分支算法
题意描述:
在2^k * 2^k的正方形棋盘上有一个缺口,这里可以认为是已经被填充了,要求给出使用三角板去填满这个棋盘的方案
#include
using namespace std;
int amount,Board[100][100];
void Cover(int tr,int tc,int dr,int dc,int size)
{
int s,t;
if(size<2)
return ;
amount++;
t=amount;
s=size/2;
if(dr=tc+s)//残缺在右上角
{
Board[tr+s-1][tc+s-1]=t;
Board[tr+s][tc+s-1]=t;
Board[tr+s][tc+s]=t;
Cover(tr,tc,tr+s-1,tc+s-1,s);
Cover(tr,tc+s,dr,dc,s);
Cover(tr+s,tc,tr+s,tc+s-1,s);
Cover(tr+s,tc+s,tr+s,tc+s,s);
}
else if(dr>=tr+s&&dc