POJ 2488 A Knight's Journey
2015-09-19 16:57
246 查看
读懂题意就知道是一个简单的DFS了
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #define N 30 int vis ; int a ; int m,n; int ok; int dir[8][2] = {{-1,-2},{1,-2},{-2,-1},{2,-1},{-2,1},{2,1},{-1,2},{1,2}}; void dfs(int x,int y,int step) { if(step==m*n) { for(int i=0; i<m*n; i++) { printf("%c%d",a[i][1]+'A',a[i][0]+1); } ok=1; printf("\n"); return; } for(int i=0; i<8; i++) { int xx=x+dir[i][0]; int yy=y+dir[i][1]; if(xx>=0&&xx<m&&yy>=0&&yy<n&&!vis[xx][yy]) { vis[xx][yy]=1; a[step][0]=xx; a[step][1]=yy; dfs(xx,yy,step+1); vis[xx][yy]=0; if(ok) { return; } } } } int main() { int t; scanf("%d",&t); int k=1; while(t--) { ok=0; memset(vis,0,sizeof(vis)); scanf("%d%d",&m,&n); vis[0][0]=1; a[0][0]=0; a[0][1]=0; printf("Scenario #%d:\n",k++); dfs(0,0,1); if(!ok) { printf("impossible\n"); } printf("\n"); } return 0; }
相关文章推荐
- ucos在M3中的中断嵌套机制
- 转:【Objective-C】第一个OC的类
- SICP 练习 (2.9)解决摘要:宽度和区间运算的关系间隔
- 怎样网站加速
- LintCode --find-the-missing-number(寻找缺失的数)
- USACO 1.3 Ski Course Design
- Sublime Text 3 插件安装
- C++ Primer Plus(第六版)--学习杂记(第六章)
- 点击时改变按钮图标
- 闭包
- 【python问题系列--1】SyntaxError:Non-ASCII character '\xe5' in file kNN.py on line 2, but no encoding declared;
- 最近的一些事
- libevent初探
- 【bzoj3306】树
- Xcode6以后mac中iOS模拟器安装路径以及程序沙箱路径
- 【android基础】——Android布局相关
- 自己用10分钟写了一个猜数字的小游戏娱乐室友
- 什么是GemFire
- Myeclipse中WEB-INF和META-INF文件夹的各文件含义
- iOS9.0适配