A Knight's Journey--POJ 2488
2010-07-23 20:52
316 查看
1、解题思路:经典深度搜索。
2、注意事项:骑士跳转的顺序(注意字母编撰顺序),DFS中递归注意控制入口的数目。
3、实现方法:
2、注意事项:骑士跳转的顺序(注意字母编撰顺序),DFS中递归注意控制入口的数目。
3、实现方法:
#include<iostream> using namespace std; int dir[8][2]={ {-1,-2},{1,-2},{-2,-1},{2,-1}, {-2,1},{2,1},{-1,2},{1,2} }; struct Node { int x,y; bool Exite; }; Node loc[27]; int x,y,step,map[27][27]; bool mark; bool Judge(int pos_x,int pos_y) { if(pos_x>x||pos_x<1||pos_y>y||pos_y<1) return false; if(map[pos_x][pos_y]) return false; return true; } void DFS(int pos_x,int pos_y) { if(!mark) { for(int i=0;i<8;i++) { if(Judge(pos_x+dir[i][0],pos_y+dir[i][1])) { if(step==x*y-1) { mark=1; step++; map[pos_x+dir[i][0]][pos_y+dir[i][1]]=1; loc[step].x=pos_x+dir[i][0]; loc[step].y=pos_y+dir[i][1]; break; } if(mark==1) return ; step++; map[pos_x+dir[i][0]][pos_y+dir[i][1]]=1; loc[step].x=pos_x+dir[i][0]; loc[step].y=pos_y+dir[i][1]; DFS(pos_x+dir[i][0],pos_y+dir[i][1]); step--; map[pos_x+dir[i][0]][pos_y+dir[i][1]]=0; } } } } int main() { int n,i=0,flag; cin>>n; while(n--) { cin>>x>>y; step=0; memset(map,0,sizeof(map)); memset(loc,0,sizeof(loc)); cout<<"Scenario #"<<++i<<":"<<endl; flag=0; for(int p=1;p<=x;p++) { for(int q=1;q<=y;q++ ) { if(!flag) { step=1; mark=0; memset(map,0,sizeof(map)); memset(loc,0,sizeof(loc)); map[p][q]=1; loc[step].x=p; loc[step].y=q; DFS(p,q); if(x*y==1) mark=1; if(mark) { for(int j=1;j<=x*y;j++) { cout<<char(loc[j].y+'A'-1)<<char(loc[j].x+'0'); } if(n==0) cout<<endl; else cout<<endl<<endl; flag=1; } } } } if(!flag) { if(n==0) cout<<"impossible"<<endl; else cout<<"impossible"<<endl<<endl; } } return 0; }
相关文章推荐
- POJ - 2488 A Knight's Journey
- poj 2488 A Knight's Journey(DFS)
- POJ-2488 A Knight's Journey (DFS)
- poj 2488 A Knight's Journey
- poj2488——A Knight's Journey
- POJ 2488 A Knight's Journey【DFS】
- POJ 2488 A Knight's Journey【dfs过】
- POJ 2488, A Knight's Journey
- 【DFS】poj 2488 A Knight's Journey
- A Knight's Journey(POJ_2488)
- 没过!poj 2488 a knight's journey
- POJ 2488 A Knight's Journey
- POJ2488-A Knight's Journey(DFS)
- POJ 2488 A Knight's Journey(基础题)
- POJ2488 A Knight's Journey(AC2)
- 【dfs】POJ-2488-A Knight's Journey
- poj 2488 A Knight's Journey
- POJ 2488 A Knight's Journey (dfs)
- POJ 2488 A Knight's Journey
- POJ 2488 A Knight's Journey