POJ 2488 A Knight's Journey
来源:互联网 发布:怎么阅读安卓源码 编辑:程序博客网 时间:2024/06/16 09:56
链接:http://poj.org/problem?id=2488
题目大意:类似国际象棋里的棋盘,但是长宽不一定相等,问骑士能不能在任意一个点走完整个棋盘。
思路:深搜。题目要求输出字典序最小的。那么优先顺序是关键。
大概就是这么个方向吧:左下方,左上方,左下方,左上方,右下方,右上方,右下方,右上方。
然后找到第一条路径之后就输出就行了。
#include<cstdio>#include<cstring>#include<iostream>using namespace std;int dx[]={-1,1,-2,2, -2,2,-1,1}; //方向数组 这是顺序优先int dy[]={-2,-2,-1,-1,1,1,2,2}; int v[50][50];int n,m;struct p{int x;int y;}path[10000];//路径bool ok(int curx,int cury)//边界判断{if(curx<n && curx>=0 && cury<m && cury>=0)return 1;return 0;}bool dfs(int curx,int cury,int count){int i;if(count==n*m){for(int i=0;i<m*n;i++)printf("%c%d",path[i].y+'A',path[i].x+1);printf("\n");return 1;}else {for(i=0;i<8;i++){if(ok(curx+dx[i],cury+dy[i]) && ! v[curx+dx[i]][cury+dy[i]]){path[count].x=curx+dx[i];path[count].y=cury+dy[i];v[curx+dx[i]][cury+dy[i]]=1;if(dfs(curx+dx[i],cury+dy[i],count+1))return 1;v[curx+dx[i]][cury+dy[i]]=0;}}}return 0;}int main(){int T;scanf("%d",&T);for(int j=1;j<=T;j++){memset(v,0,sizeof(v));scanf("%d %d",&n,&m);v[0][0]=1;path[0].x=path[0].y=0;printf("Scenario #%d:\n",j);if(!dfs(0,0,1))printf("impossible\n");printf("\n");}return 0;}
- 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 (dfs)
- poj 2488 A Knight's Journey
- POJ 2488 A Knight's Journey
- POJ-2488-A Knight's Journey
- POJ 2488 A Knight's Journey
- poj 2488 A Knight's Journey
- poj 2488 A Knight's Journey
- POJ 2488 A Knight's Journey
- POJ 2488 A Knight's Journey
- poj 2488 A Knight's Journey
- poj 2488 A Knight's Journey
- POJ 2488 A Knight's Journey
- POJ 2488(A Knight's Journey)
- POJ 2488 A Knight's Journey
- POJ-2488-A Knight's Journey
- Android 解析后台返回为Json数据的简单例子!!!
- 基于ViewFlipper实现的自定义新手指引控件.
- java按行读取text文件
- red5流媒体服务器的安装与配置(FLEX与JAVA的结合)
- URAL 1783 Nuclear Arms Race
- POJ 2488 A Knight's Journey
- 一步一步写STL:空间配置器 (1)
- navicat for mysql中不能显示中文的解决
- Linux 常用的基本命令
- Linux Shell 变成基本语法
- NYOJ 453 小珂的烦恼
- MFC滚动条的使用
- JavaScript call函数的用法
- 最新资讯:浩辰CAD机械2013软件将于6月强势推出