poj2488A Knight's Journey--简单搜索
来源:互联网 发布:cms 系统 小程序 编辑:程序博客网 时间:2024/06/01 13:24
题目大意:一个p*q的棋盘,骑士走日字,看是否能不重复的遍历棋盘,如果能,输出字典序。题目里p是数字,q是字母,遍历字典序要根据q来排列。
这里个题目花了些时间,一是在这里,二是没有注意找到就退出。
#include<cstdio>
#include<cstring>
const int N=27;
int vis[N][N],p,q,nm;
//x 数字 y字母,按照y从小到大扩展
int fx[8][2]={{-2,-1},{-2,1},{-1,-2},{-1,2},{1,-2},{1,2},{2,-1},{2,1}};
int pathx[2*N],pathy[2*N];
bool flag;
int dfs(int x,int y,int step){
if(step==nm){
flag=true;
return 1 ; //这里的退出不是找到就退出,还要找其他方案,
}
else
for(int i=0;i<8;i++){
int tmpx=x+fx[i][0],tmpy=y+fx[i][1];
if(tmpy>=0&&tmpy<p&&tmpx>=0&&tmpx<q&&!vis[tmpx][tmpy]){
vis[tmpx][tmpy]=1;
pathx[step]=tmpx;
pathy[step]=tmpy;
dfs(tmpx,tmpy,step+1);
if(flag)return 1;//搜索,找到一个就退出,不再往下进行。
vis[tmpx][tmpy]=0;
}
}
}
int main(){
int t,i;
scanf("%d",&t);
for(i=1;i<=t;i++){
flag=false;
memset(vis,0,sizeof(vis));
scanf("%d%d",&p,&q);
printf("Scenario #%d:\n",i);
nm=p*q;
vis[0][0]=1;
pathx[0]=0;
pathy[0]=0;
dfs(0,0,1);
if(flag)
{
for (int j=0;j<nm;j++)
printf("%c%c",pathx[j]+'A',pathy[j]+'1');
printf("\n\n") ;
}
else printf("impossible\n\n");
}
return 0;
}
- poj2488A Knight's Journey--简单搜索
- poj2488A Knight's Journey
- poj2488A Knight's Journey
- poj2488A Knight's Journey
- poj2488A Knight's Journey
- poj2488A Knight's Journey
- poj2488A Knight's Journey
- POJ2488A Knight's Journey(dfs+数学)
- poj2488 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 搜索
- A Knight's Journey (搜索)
- A Knight's Journey(搜索题)
- A Knight's Journey(深度搜索)
- POJ 2488 A Knight's Journey 搜索
- A Knight's Journey(简单dfs)
- ogg同步mysql(mariadb5.5)数据到oracle
- 算法设计题3.29-栈和队列-第3章-《数据结构习题集》-严蔚敏吴伟民版
- String练习
- 算法设计题3.25-栈和队列-第3章-《数据结构习题集》-严蔚敏吴伟民版
- 算法设计题3.26-栈和队列-第3章-《数据结构习题集》-严蔚敏吴伟民版
- poj2488A Knight's Journey--简单搜索
- nodesj中 中间件express-session的理解
- 算法设计题3.30 && 3.32-栈和队列-第3章-《数据结构习题集》-严蔚敏吴伟民版
- CodeForces 609C-C. Load Balancing
- 新版Cordova(>4.0)编译Android APK打上签名方法
- foreach循环中删除一个列表中的元素报错
- 将Android开源项目通过Gradle发布到bintray/Jcenter
- PHP连接MySQL数据库;mysql中update批量修改与替换语句
- Dreamweaver8自动关闭问题