POJ2488 A Knight's Journey(DFS)

/*
1. dfs
2. typedef
	typedef 类型 别名; 
3. pair
	【pair的定义】:
		例子1:pair<类型1, 类型2> 变量名;
		例子2(结合typedef):
			typedef pair POS;
			POS po; 
	【pair类型的引用】:
		变量名.first = ...;    
		变量名.second = ...; 
	【pair的字面量形式】:
		例子1:pair(1, 2)
		例子2(结合typedef使用):
			typedef pair POS;
			POS(1, 1)  
4. vector的使用
	【导入库】:#include 
	【定义】:vector<类型> 数组名;
	【引用】:数组名[index]
	【API】:
		vector a;  // 声明一个vector数组a 
		a.size();  // 读取数组 a 的大小 
		a.resize(num); // 改变 a 的大小(a.resize(0)可以用来清空数组) 
		a.push_back(...);  // 在 a 的末尾添加元素 
		a.pop_back();  // 去掉 a 的末尾的元素 
*/

#include 
#include 
using namespace std;

const int maxn = 100;
int markChessBoard[maxn][maxn] = {0};  // 1:走过  0:没走过 
int dx[8] = {-1, 1, -2, 2, -2, 2, -1, 1};  
int dy[8] = {-2, -2, -1, -1, 1, 1, 2, 2};
int p, q;
typedef pair POS;
POS pos(1, 1);
vector positions;
bool flag = false; // 跳不了的flag

void dfsn(int x, int y, int count)
{
	if (flag == false)
	{
		int i;
		// 递归边界
		if (count >= p*q) 
		{
			// 输出显示 
			flag = true;
			for (i=0;i>n;
	while(n--)
	{
		int i,j;
		s = s + 1;
		cin>>p>>q;
		cout<<"Scenario #"<

你可能感兴趣的:(C/C++,算法)