http://acm.hdu.edu.cn/showproblem.php?pid=1307 题目半天看懂 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> using namespace std; #define N 11 struct node { int index[N]; }map[N*N*N][2]; int dir[4][2]={-1,0,0,-1,1,0,0,1}; int beg[N],end[N]; bool h[N*N*N][2]; int n,m; bool flag; bool find(int x,int y) { for(int i=0;i<n;i++) if(map[x][y].index[i]!=end[i]) return false; return true; } bool judge(int fx,int fy,int x,int y) { if(fx<0||fx>=m||fy<0||fy>1) return false; int ans=0; for(int i=0;i<n;i++) { int temp=(int)abs(1.0*map[fx][fy].index[i]-1.0*map[x][y].index[i]); if(temp==1) ans++; else if(temp>1) return false; } if(ans!=1) return false; return true; } void dfs(