这个思路挺nice的 模仿剪刀路线
#include <iostream>
using namespace std;
int dx[4]={0,1,0,-1};int dy[4]={1,0,-1,0};
int vis[7][7];
int num=0;
void dfs(int x,int y)
{
if(x==0||y==0||x==6||y==6)
{
num++;
return;
}
for(int i=0;i<4;i++)
{
int temp1=x+dx[i];int temp2=y+dy[i];
if(temp1>=0&&temp1<=6&&temp2>=0&&temp2<=6&&!vis[temp1][temp2])
{
vis[temp1][temp2]=1;
vis[6-temp1][6-temp2]=1;
dfs(temp1,temp2);
vis[temp1][temp2]=0;
vis[6-temp1][6-temp2]=0;
}
}
}
int main()
{
vis[3][3]=1;
dfs(3,3);
cout<<num/4;
return 0;
}