#include<iostream>
using namespace std;
int ans;
int dire [][2]={{-1,0},{1,0},{0,-1},{0,1}};
int vis[7][7];
void dfs(int x,int y){
if(x==0||y==0||x==6||y==6){
ans++;
return;
}
vis[x][y]=1;
vis[6-x][6-y]=1;
for(int k=0;k<4;k++){
int nx=x+dire[k][0];
int ny=y+dire[k][1];
if(nx<0||nx>6||ny<0||ny>6)continue;
if(!vis[nx][ny]){
dfs(nx,ny);
}
}
vis[x][y]=0;
vis[6-x][6-y]=0;
}
int main(int argc,const char *argv[]){
dfs(3,3);
cout<<ans/4<<endl;
return 0;
}
6*6正方形对称个数
第4行,int ans=0;应该初始化为0,不然后面ans++的基础值不一定是什麽随机值