Bailian4123 马走日【DFS】
4123:马走日
总时间限制: 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
问题链接:Bailian4123 马走日
问题简述:(略)
问题分析:用DFS来解决这个问题,不解释。
程序说明:(略)
参考链接:(略)
题记:(略)
AC的C++语言程序如下:
/* Bailian4123 马走日 */#include <bits/stdc++.h>using namespace std;const int dx[] = {1, 1, -1, -1, 2, 2, -2, -2};
const int dy[] = {2, -2, 2, -2, 1, -1, 1, -1};
const int N = 10;
int vis[N][N];
int n, m, x, y, cnt;void dfs(int step, int x, int y)
{if(step == n * m) cnt++;else {for(int i = 0; i < 8; i++) {int nx = x + dx[i];int ny = y + dy[i];if(nx >= 0 && nx < n && ny >= 0 && ny < m && vis[nx][ny] == 0) {vis[nx][ny] = 1;dfs(step + 1, nx, ny);vis[nx][ny] = 0;}}}
}int main()
{int t;scanf("%d", &t);while(t--) {scanf("%d%d%d%d", &n, &m, &x, &y);memset(vis, 0, sizeof vis);cnt = 0;vis[x][y] = 1;dfs(1, x, y);printf("%d\n", cnt);}return 0;
}
Bailian4123 马走日【DFS】相关推荐
- 马走日 DFS c++ 算法解答
题目: 假设国际象棋棋盘有5*5共25个格子.设计一个程序,使棋子从初始位置开始跳马,需要将棋盘的格子全部都走一遍,每个格子只允许走一次. 问:总共有多少解. 思路: DFS: 将起点作为搜索的起点, ...
- 算法提高课-搜索-DFS之搜索顺序-AcWing 1116. 马走日:dfs
题目分析 来源:acwing 分析: dfs分两类,一类是内部搜索,不需要恢复现场:一类是外部搜索(以整个图作为状态),需要恢复现场.这里的马走日就是状态图,需要恢复现场. 理清dfs,需要画一个搜索 ...
- 马走日(DFS深搜)
马走日 目录 马走日 题意描述:给多组数据,给棋盘的大小和马的初始位置,求有多少种方法让马走日全部走过棋盘,不能重复走棋盘的同一个点 解题思路:利用数组来对所有的棋盘上所有的点初始化表示未走过,把马的 ...
- 马走日的解法(dfs)
马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. Input 第一行为整数T ...
- 信息学奥赛一本通(1219:马走日)
1219:马走日 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 12078 通过数: 6316 [题目描述] 马在中国象棋以日字形规则移动. 请编写一段程 ...
- 【密码岛OJ】1753 马走日题解
作为一名密码岛码农,出道深搜 马走日是一道典型的深搜题,主要找准方向再判断日字形就完了 上代码 第一次写题解 不是很熟练 马走日的主要思路就是先定义两个方向数组,然后开一个dfs 求累加和 如果属于日 ...
- GDUT - 专题学习1 C - 马走日
C - 马走日 题目 马在中国象棋以日字形规则移动. 请编写一段程序,给定 n×m 大小的棋盘,以及马的初始位置 (x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. ...
- 马走日(深搜 C++)
马走日 总时间限制: 1000ms 内存限制: 1024kB 描述 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点, ...
- 信息学奥赛一本通:1219.马走日
信息学奥赛一本通:1219.马走日 1219:马走日 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 7406 通过数: 3863 [题目描述] 马在中国象棋以日字形规则移动. 请 ...
最新文章
- 2022-2028年中国绝缘栅双极晶体管(IGBT)行业投资分析及前景预测报告
- uniapp同步获取用户信息_微信小程序云开发教程微信小程序的API入门获取用户身份信息系列API...
- 剑指offer系列之十:二进制中1的个数
- 解决小米手机缩放窗口问题
- opencv 显示图片(直接)
- mac 下 通过 brew 安装 MariaDB
- 大数据数据量估算_如何估算数据科学项目的数据收集成本
- Java多线程实现异步调用
- 系统新模块增加需要哪些步骤_想要吸引人流,儿童乐园需要增加哪些新设备呢...
- 详述 hosts 文件的作用及修改 hosts 文件的方法
- 今晚直播丨用高效的Oracle性能诊断工具,让运维工作轻松起来!
- 浮点数的表示,和IEEE754规范化表示
- [转]十个让你变成糟糕的程序员的行为
- MyBatis 动态 SQL(认真看看, 以后写 SQL 就爽多了)
- unity物体移动的几种常用方式
- Tomcat配置SSL证书实现https(内网ip访问)
- Excel2010无法保存提示检测到错误
- 「分布式系统之美」知乎圆桌精选大放送第二期|不要放过任何你感兴趣的话题
- IG痛失亚军,含泪夺冠,奖杯是用区块链的技术合成的你知道吗
- Spring Boot集成Druid异常discard long time none received connection.