#include<iostream>
#include<set>
#include<queue>
#include<vector>
using namespace std;
void dfs(vector<vector<int>> flag,int &sum,int x,int y)
{
if(x>3||y>3)
return ;
if(x==3&&y==3)
{
sum++;
return;
}
if(!flag[x][y])
{
flag[x][y]=1;
dfs(flag,sum,x+1,y);
dfs(flag,sum,x+2,y);
dfs(flag,sum,x,y+2);
dfs(flag,sum,x+3,y);
dfs(flag,sum,x,y+3);
dfs(flag,sum,x,y+1);
flag[x][y]=0;
}
}
int main()
{
vector<vector<int>> flag(4,vector<int>(4,0));
int sum=0;
dfs(flag,sum,0,0);
cout<<sum<<endl;
return 0;
}跑出来是106 要考虑步长1-3