比赛 搜索题... 评测结果 AAAAAAAAAA
题目名称 跳马问题 最终得分 100
用户昵称 sqyon 运行时间 0.005 s
代码语言 C++ 内存使用 0.29 MiB
提交时间 2014-11-04 19:18:59
显示代码纯文本
#include <cstdio>
#include <queue>

using namespace std;

int g[4][2] = 
{
	{-2, 1}, {-1, 2},
	{1, 2}, {2, 1}
};

int f[25][25], m, n;

int dfs(int x, int y)
{
	if (x < 1 || y < 1 || x > m || y > n)
		return 0;
	if (x == m && y == n)
		return 1;
	if (f[x][y])
		return f[x][y];
	for (int i = 0; i < 4; i++)
		f[x][y] += dfs(x + g[i][0], y + g[i][1]);
	return f[x][y];
}

int main()
{
	freopen("horse.in", "r", stdin);
	freopen("horse.out", "w", stdout);
	
	scanf("%d %d", &m, &n);
	printf("%d", dfs(1, 1));
	return 0;
}