题号:8465 马走日(2.5基本算法之搜索)
发布时间
阅读量:
阅读量
8465:马走日
总时间限制: 1000ms 内存限制: 1024kB
描述
在中国象棋中,马的移动方式遵循日字形的规则。
请编写一个程序,当给定一个n*m大小的棋盘以及马的起始位置(x,y)时,要求马在移动过程中不能重复经过棋盘上的任意一点,计算马能够找到多少种不同的路径来遍历棋盘上的所有点。
输入
第一行包含一个整数T(T < 10),用于表示测试数据的组数。
每组测试数据包含一行,由四个整数构成,分别表示棋盘的尺寸和初始位置坐标n,m,x,y。(0<=x<=n-1,0<=y<=m-1, m < 10, n < 10)
输出
对于每组测试数据,输出一行,为一个整数,代表马可以完成遍历棋盘的所有可能路径数量。若无法完成一次遍历,则输出0。
样例输入
1
5 4 0 0
样例输出
32
#include<iostream>
using namespace std;
//http://noi.openjudge.cn/ch0205/8465/
//马走日的方式有8种,画一个格点图试试看,然后就是正常dfs
//规模比较小才能这样做,每次遇到不能递归的时候就去判断是否已经都遍历过
int t,n,m,x1,y1,res,g[20][20];
i
全部评论 (0)
还没有任何评论哟~
