本文主要是介绍poj 2488 A Knight's Journey 骑士周游,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这个题意还是能理解就是不会各种搜索遍历
这些日子写写DFS BFS 基础题
这个先是看别人的思路, 自己写, 再看别人代码, 然后各种改才A掉的
基本照抄了。
#include <iostream>
#include <cstdlib>
using namespace std;
bool visited[10][10];
char path[100], success;
//可走的路径
int dx[8] = {-2, -2, -1, -1, +1, +1, +2, +2};
int dy[8] = {-1, +1, -2, +2, -2, +2, -1, +1};
int p, q;
//深搜
void DFS(int depth, int x, int y)
{//判断是深度是否满足整个棋盘大小visited[x][y] = true;if (depth == p * q){//输出数据for (int i = 0; i < 2 * depth; i++)printf("%c", path[i]);printf("\n\n");success = true;return ;}//如果成功走出一条路线就退出搜索for (int i = 0; i < 8 && success == false; i++){int new_x = x + dx[i];int new_y = y + dy[i];//判断是否越界 并且 未被访问过if (new_x >= 1 && new_x <= q && new_y >= 1 && new_y <= p &
这篇关于poj 2488 A Knight's Journey 骑士周游的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!