poj 2488 A Knight's Journey
2011-07-22 20:14
260 查看
#include<iostream> //dfs,注意字典顺序 using namespace std; int ans[8][2]={{-1,-2},{1,-2},{-2,-1},{2,-1},{-2,1},{2,1},{-1,2},{1,2}}; //按字典序排列 int t,r,c,n,path[30][2],vis[30][30],rear; void dfs(int x,int y) { for(int i=0;i<8;++i) { int px=x+ans[i][0],py=y+ans[i][1]; if(px>0&&px<=r&&py>0&&py<=c&&!vis[px][py]) { vis[px][py]=1; path[++rear][0]=py;path[rear][1]=px; if(rear==r*c) return ; dfs(px,py); if(rear==r*c) return ; vis[px][py]=0; rear--; } } } int main() { cin>>t; for(int i=1;i<=t;++i) { cin>>r>>c; printf("Scenario #%d:\n",i); rear=0; for(int q=1;q<=c&&rear<r*c;++q) //两个for循环也是按字典序 for(int p=1;p<=r&&rear<r*c;++p) { memset(vis,0,sizeof(vis)); vis[p][q]=1;path[1][0]=q;path[1][1]=p;rear=1; if(rear==r*c) break; dfs(p,q); } if(rear==r*c) { for(int j=1;j<=rear;++j) cout<<char(path[j][0]+64)<<path[j][1]; cout<<endl<<endl; } else printf("impossible\n\n"); } return 0; }
ac,从(1,1)直接dfs也过,不知什么原因,可能数据较弱
#include<iostream> //ac,从(1,1)直接dfs也过,不知什么原因,可能数据较弱 using namespace std; int ans[8][2]={{-1,-2},{1,-2},{-2,-1},{2,-1},{-2,1},{2,1},{-1,2},{1,2}}; int t,r,c,n,path[30][2],vis[30][30],rear; void dfs(int x,int y) { for(int i=0;i<8;++i) { int px=x+ans[i][0],py=y+ans[i][1]; if(px>0&&px<=r&&py>0&&py<=c&&!vis[px][py]) { vis[px][py]=1; path[++rear][0]=py;path[rear][1]=px; if(rear==r*c) return ; dfs(px,py); if(rear==r*c) return ; vis[px][py]=0; rear--; } } } int main() { cin>>t; for(int i=1;i<=t;++i) { cin>>r>>c; printf("Scenario #%d:\n",i); memset(vis,0,sizeof(vis)); rear=1; vis[1][1]=1;path[1][0]=1;path[1][1]=1; dfs(1,1); if(rear==r*c) { for(int j=1;j<=rear;++j) cout<<char(path[j][0]+64)<<path[j][1]; cout<<endl<<endl; } else printf("impossible\n\n"); } return 0; }
相关文章推荐
- [poj]2488 A Knight's Journey dfs+路径打印
- POJ2488——DFS——A Knight's Journey
- POJ 2488 A Knight's Journey
- DFS poj 2488
- POJ 2488 A Knight's Journey
- poj 2488 深搜+回溯
- poj 2488 暴搜
- POJ 2488 A Knight's Journey (回溯法 | DFS)
- poj2488 A Knight's Journey
- POJ 2488 A Knight's Journey
- poj 2488 dfs
- poj2488
- poj 2488 A Knight's Journey http://poj.org/problem?id=2488
- poj 2488 DFS
- POJ-2488-A Knight's Journey
- POJ 2488 A Knight's Journey
- POJ-2488 国际象棋马的走法 (深度优先搜索和回溯)
- POJ 2488 A Knight's Journey(DFS)
- POJ 2488:A Knight's Journey
- POJ 2488 A Knight's Journey