信息学奥赛一本通:1219.马走日

1219:马走日

时间限制: 1000 ms 内存限制: 65536 KB
提交数: 7406 通过数: 3863
【题目描述】
马在中国象棋以日字形规则移动。

请编写一段程序,给定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
【来源】
深度优先搜索dfs


```cpp
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
bool book[30][30];
int s1[8][2] = { 2, 1, 1, 2, -1, -2, -2, -1, -2, 1, -1, 2, 1, -2, 2, -1};
int sum=0,n,m,x,y;
void dfs(int x,int y,int step)                                          //深度优先搜索
{if(step==n*m){sum++;return;}for(int i=0; i<8; i++){int x1=x+s1[i][0],y1=y+s1[i][1];if(x1<n&&y1<m&&x1>=0&&y1>=0&&book[x1][y1])   //判断是否溢出{book[x1][y1]=0;dfs(x1,y1,step+1);           //对此步进行搜索book[x1][y1]=1;}}
}
int main()
{int num;scanf("%d",&num);while(num--){scanf("%d%d%d%d",&n,&m,&x,&y);       memset(book,1,sizeof(book));book[x][y]=0;dfs(x,y,1);printf("%d\n",sum);sum=0;}return 0;
}

信息学奥赛一本通:1219.马走日相关推荐

  1. 信息学奥赛一本通 1254:走出迷宫 | OpenJudge NOI 2.5 6264:走出迷宫

    [题目链接] ybt 1254:走出迷宫 OpenJudge NOI 2.5 6264:走出迷宫 [题目考点] 1. 广搜 迷宫问题 [解题思路] 广搜,迷宫问题模板题. 当数据量很小时,用深搜的方法 ...

  2. 信息学奥赛一本通 1252:走迷宫 | OpenJudge NOI 2.5 2753:走迷宫

    [题目链接] ybt 1252:走迷宫 OpenJudge NOI 2.5 2753:走迷宫 [题目考点] 1. 广搜 迷宫问题 [解题思路] 设结构体类型的结点保存位置以及步数,队列中保存的是该结构 ...

  3. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  4. 经典问题的另类解法——以信息学奥赛一本通c++版1216红与黑为例

    题目链接:信息学奥赛一本通(C++版)在线评测系统 (ssoier.cn) 题目描述: 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动 ...

  5. 信息学奥赛一本通超详细题解,动画图文题解

    内容来源于微信公众号:大神编程.已经过原文作者授权. 更新时间:2020-11-5 现在开始更新基础算法题. 个人感言:从未见过如此详细的题解,动画.图文结合,适合任何水平的选手.尤其是特别适合自学的 ...

  6. 信息学奥赛一本通(1219:马走日)

    1219:马走日 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 12078     通过数: 6316 [题目描述] 马在中国象棋以日字形规则移动. 请编写一段程 ...

  7. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  8. 【棋盘问题】-马走日

    信息学奥赛一本通(C++版)在线评测系统 解题思路: (1)题目比较好理解,要求遍历所有点的所有方案,那么是典型的DFS+回溯题. (2)由于马的移动规则受限,所以只能按照固定的格式走,按照日字型走的 ...

  9. 信息学奥赛一本通 第五版(C++版)

    信息学奥赛一本通 第五版(C++版)第一部分 C++语言 第一章 C++语言入门 第二节 C++语言程序设计 P15 1. 编写一个能够输出Hello,World!的程序,这个程序常常作为一个初学者接 ...

最新文章

  1. 归并排序树状数组求逆序数
  2. 来跟我一起分享技术、传递价值:阿里云MVP全球招募,火热启动!
  3. Hadoop的安装(单机和集群)
  4. python查看电脑配置_怎么查看电脑配置(教你如何查看电脑配置信息和型号)
  5. nginx的限流配置
  6. 【UE4+Vive】学习笔记1
  7. mysql数据库运维_开源数据库MySQL DBA运维实战3
  8. ubuntu16.04下ROS操作系统学习笔记(三 / 二)ROS基础-ROS通信编程
  9. 《最优化理论》:运输问题(一)求最小运费【西北角法、最小元素法、伏格尔法】
  10. 接口测试用例设计 - 实战篇
  11. android版本下载地址 http,Android ADT下载地址(含各版本)
  12. 【虹科车用总线技术】PCAN-USB使用手册
  13. 疫情让鲸类暂时远离了人工噪声,但在这之前,它们已被打扰了一百多年
  14. 使用ArchR分析单细胞ATAC-seq数据(第一章)
  15. python怎样批量修改文件大小_使用python对文件夹下的照片进行批量修改尺寸
  16. 搞明白activated和deactivated
  17. java ttf_java直接使用ttf字体,解决window和linux之间的差异
  18. 国产实时操作系统+intel x86/龙芯平台超边缘计算机方案
  19. [Python]安装/升级pip/pip3
  20. 20Python爬虫--Scrapy爬取和讯博客个人所有博客情况并保存到数据库

热门文章

  1. 如何将pdf转为ppt?
  2. 右手第四版引导页源码 - 彩虹云任务引导页模板
  3. python实现邮件发送(包括带附件)
  4. 今年 今年我二十三岁
  5. base64stego的writeup
  6. 爬虫学习笔记1(超级详细)
  7. 绘制canvas彩色泡泡小球碰撞
  8. 市场最火的模式原来是它,不少企业家都选择错了,人均消费商模式——让某宝某东等大主流平台的客户,成为你的直接用户
  9. 【视频文稿】车载Android应用开发与分析 - 开发系统应用
  10. opencv和mediapipe实现手势识别