题目意思是在一个国际棋盘里,判断马能否不重复的走过所有格,并记录下其中按字典序排列的第一种路径。
DFS方法解决,由于是字典顺序,所以搜索方向要严格规定本题错了几次,原因是memset没有使用正确,此函数的第三个参数是按字节的单位,所以数组长度还要乘以sizeof(type)
160K 63MS C++ 3332B 2013-11-28 10:29:22
下图是搜索的顺序:
以下是代码:
#include<iostream>
#include<vector>
#include<map>
#include <string>
#include <set>
#include <stack>
#include <queue>
using namespace std;
#include <stdio.h>
#include <string.h>
#define N_P 27
#define N_Q 27
int g_chessboard[N_P][N_Q] = {};
char g_char[27] = {};
int g_printRule[100][2] = {};
int g_varP = 0;
int g_varQ = 0;
int g_moveNum = 0;
#define rangeP(m) (m >= 1 && m <= g_varP)
#de