程序博客网 > 郧西七夕节网络歌曲
来源:互联网 发布:郧西七夕节网络歌曲 编辑:程序博客网 时间:2024/05/01 03:46
#include "stdio.h"#include "math.h"#include "string.h"int n,mark[100][100],cur,flag,savex[1000],savey[1000],count;void DFS(int x,int y,int cur){int i;if(cur==n*n){flag=1;count++;printf("(%d,%d)",savex[0],savey[0]);for(i=1;i<n*n;i++)printf("->(%d,%d)",savex[i],savey[i]);printf("%d/n",count);}else {if(x+2<=n-1&&y-1>=0&&mark[x+2][y-1]==0) {mark[x][y]=1;savex[cur]=x+2;savey[cur]=y-1; DFS(x+2,y-1,cur+1); mark[x][y]=0;}if(x+2<=n-1&&y+1<=n-1&&!mark[x+2][y+1]){mark[x][y]=1;savex[cur]=x+2;savey[cur]=y+1; DFS(x+2,y+1,cur+1); mark[x][y]=0;}if(x+1<=n-1&&y-2>=0&&!mark[x+1][y-2]) {mark[x][y]=1;savex[cur]=x+1;savey[cur]=y-2;DFS(x+1,y-2,cur+1);mark[x][y]=0;}if(x+1<=n-1&&y+2<=n-1&&!mark[x+1][y+2]){mark[x][y]=1;savex[cur]=x+1;savey[cur]=y+2; DFS(x+1,y+2,cur+1); mark[x][y]=0;}if(x-2>=0&&y-1>=0&&!mark[x-2][y-1]) {mark[x][y]=1;savex[cur]=x-2;savey[cur]=y-1; DFS(x-2,y-1,cur+1); mark[x][y]=0;}if(x-2>=0&&y+1<=n-1&&!mark[x-2][y+1]) {mark[x][y]=1;savex[cur]=x-2;savey[cur]=y+1; DFS(x-2,y+1,cur+1); mark[x][y]=0;}if(x-1>=0&&y+2<=n-1&&!mark[x-1][y+2]) {mark[x][y]=1;savex[cur]=x-1;savey[cur]=y+2; DFS(x-1,y+2,cur+1); mark[x][y]=0;}if(x-1>=0&&y-2>=0&&!mark[x-1][y-2]) {mark[x][y]=1;savex[cur]=x-1;savey[cur]=y-2; DFS(x-1,y-2,cur+1); mark[x][y]=0;}}}int main(){int i,j,a,b;while(scanf("%d %d %d",&n,&a,&b)!=EOF){flag=0;count=0;memset(mark,0,sizeof(mark));memset(savex,0,sizeof(savex));memset(savey,0,sizeof(savey));savex[0]=a;savey[0]=b;mark[a][b]=1;DFS(a,b,1);if(flag==0) printf("N0 way/n");}return 0;}