题目
题解
#include<iostream>
#include<cstring>
using namespace std;
const int N=10;
int k,n,m,x,y;
bool st[N][N];
int dx[8]={-2,-1,1,2,2,1,-1,-2},dy[8]={-1,-2,-2,-1,1,2,2,1};
int ans;
void dfs(int x,int y,int cnt){
if(cnt==n*m){
ans++;
return;
}
st[x][y]=true;
for(int i=0;i<8;i++){
int a=x+dx[i],b=y+dy[i];
if(a<0||a>=n||b<0||b>=m)continue;
if(st[a][b])continue;
dfs(a,b,cnt+1);
}
st[x][y]=false;
}
int main(){
cin>>k;
while(k--){
ans=0;
cin>>n>>m>>x>>y;
dfs(x,y,1);
cout<<ans<<endl;
}
return 0;
}