版权声明:转载请附上地址 https://blog.csdn.net/weixin_44574520/article/details/89787919
mzoj 1184
Code:
#include <bits/stdc++.h>
using namespace std;
int n=5,ans,sx,sy,vis[7][7];
int tx[]={0,-2,-2,-1,-1,1,1,2,2};
int ty[]={0,-1,1,-2,2,-2,2,-1,1};
inline void init_() {
freopen("a.txt","r",stdin);
}
inline void dfs_(int x,int y,int cnt) {
if(x<1||y<1||x>n||y>n) return;
if(cnt==25) {
++ans;
return;
}
for(int i=1;i<=8;i++) {
int dx=x+tx[i];
int dy=y+ty[i];
if(vis[dx][dy]) continue;
vis[dx][dy]=1;
dfs_(dx,dy,cnt+1);
vis[dx][dy]=0;
}
}
inline void readda_() {
scanf("%d%d",&sx,&sy);
ans=0;
memset(vis,0,sizeof(vis));
vis[sx][sy]=1;
dfs_(sx,sy,1);
printf("%d",ans);
}
int main() {
init_();
readda_();
return 0;
}