原题链接:
第八届蓝桥杯 ——方格分割_六级不考550+不改名-CSDN博客https://blog.csdn.net/weixin_46239370/article/details/115426442代码:
#include<iostream>
using namespace std;
int mark[10][10];
int dir[4][2] = {{-1,0},{1,0},{0,-1},{0,1}};
int ans ;
void dfs(int x,int y)
{
if(x==1||y==1||x==7||y==7){
ans++;
return;
}
for(int i =0 ;i<4;i++){
int nx = x+dir[i][0];
int ny = y+dir[i][1];
if(nx<=7&&ny<=7&&mark[nx][ny]==0){
mark[nx][ny] = 1;
mark[8-x][8-y] =1 ;
dfs(nx,ny);
mark[nx][ny] =0;
mark[8-x][8-y] =0 ;
}
}
}
int main()
{
dfs(4,4);
cout<<ans / 4;
return 0;
}