#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