搜索专题 B
来源:互联网 发布:js移除onclick 编辑:程序博客网 时间:2024/06/04 23:19
1、简单描述
一个骑士从(1,1)开始走,遍历整个棋盘,输出路径。
2、思路
#include<iostream>#include<string.h>#include<algorithm>using namespace std;int path[101][101], p, q, cnt;bool vis[101][101];bool flag;int dx[8] = {-1, 1, -2, 2, -2, 2, -1, 1};int dy[8] = {-2, -2, -1, -1, 1, 1, 2, 2}; //方向数组bool island(int x, int y){ if(x >= 1 && x <= p && y >= 1 && y <= q && !vis[x][y] && !flag) return true; return false;} //判断是否是边界以及是否遍历过void dfs(int r, int c, int step){ path[step][0] = r; path[step][1] = c; //记录行和列的路径 if(step == p * q) { flag = true; return ; } for(int i = 0; i < 8; i++) { int nx = r + dx[i]; int ny = c + dy[i]; //向八个方向搜索 if(island(nx,ny)) { vis[nx][ny] = true; dfs(nx,ny,step+1); vis[nx][ny] = false; } }} //深搜int main(){ int T,cas=1; cin>>T; while(T--) { flag = 0; cin>>p>>q; memset(vis,0,sizeof(vis)); vis[1][1] = 1; dfs(1,1,1); cout<<"Scenario #"<<cas<<":"<<endl; if(flag) { for(int i = 1; i <= p * q; i++) cout<<char(path[i][1] - 1 + 'A')<<path[i][0]; //列以大写字母行式输出 cout<<endl; } else cout<<"impossible"<<endl; cout<<endl; cas++; } return 0;}
0 0
- 搜索专题 B
- [kuangbin带你飞]专题一 简单搜索 B POJ2251
- kuangbin带你飞专题一(搜索)B
- [kuangbin带你飞]专题一 简单搜索 B
- [kuangbin带你飞]专题一 简单搜索-B
- 2251&[kuangbin带你飞]专题一 简单搜索 B
- [kuangbin带你飞]专题一 简单搜索 B
- [kuangbin带你飞]专题1 简单搜索 B
- 搜索专题
- 搜索专题
- 搜索专题
- 搜索专题
- [kuangbin带你飞]专题一 简单搜索 B - Dungeon Master(POJ 2251)
- [kuangbin带你飞]专题一 简单搜索 B - Dungeon Master poj2251
- [kuangbin带你飞]专题一 简单搜索->B - Dungeon Master
- [kuangbin带你飞]专题一 简单搜索 - B - Dungeon Master
- [kuangbin带你飞]专题二-搜索进阶-B-Eight II
- 搜索-B
- Mini2440学习日记(2)_U-boot的启动流程分析
- VS2010每次编译都重新编译整个工程的解决方案
- Linux下的管道组织管理与容量测试
- mysql远程连接命令
- 中兴C220组播的配置
- 搜索专题 B
- How to install Armbian on Orange Pi Plus 2e
- Unity3D基础篇----Shader学习笔记(1)
- 继承的一些细节,笔记
- POJ 1188 Gleaming the Cubes 笔记
- Android读取工程根目录下文件内容
- c++ 数据结构排序技术
- [RK3288][Android6.0] Audio中的HW Params设置流程
- Ubuntu16.04桥接下如何配置固定IP