没发现什么错啊55
#include<bits/stdc++.h>
using namespace std;
int dx[]={1,2,2,1};
int dy[]={2,1,-1,-2};
int vis[20][20];
int ans,n,m;
void dfs(int x,int y){
if(x == m && y == y){
ans++;
return;
}
for(int i = 0 ; i < n ; ++ i){
int xx = x + dx[i];
int yy = y + dy[i];
if(xx >= 0 && yy >= 0 && yy <= n && xx <= m && !vis[xx][yy]){
vis[xx][yy] = 1;
dfs(xx,yy);
vis[xx][yy] = 0;
}
}
return;
}
int main(){
cin >> m >> n;
vis[0][0] = 1;
dfs(0,0);
cout << ans;
return 0;
}