信息学奥赛一本通(1219:马走日)
1219:马走日
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 12078 通过数: 6316
【题目描述】
马在中国象棋以日字形规则移动。
请编写一段程序,给定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
【分析】
这是深搜的模板题目,值得注意的是,马走日,8个方向的位置。
【参考代码】
#include <stdio.h>
#include <string.h>
#define N 15int n,m; //棋盘大小
char maps[N][N]; //棋盘数组
int vis[N][N]; //访问数组
int dir[8][2]={{-2,1},{-2,-1},{-1,2},{-1,-2},{2,1},{2,-1},{1,2},{1,-2}}; //方向数组
int cnt; //遍历棋盘的途径总数 void dfs(int x,int y,int step)
{int i,nx,ny;if(step==n*m){cnt++;return;}for(i=0;i<8;i++){nx=x+dir[i][0];ny=y+dir[i][1];if(nx>=0 && ny>=0 && nx<n && ny<m && !vis[nx][ny]){vis[nx][ny]=1;dfs(nx,ny,step+1);vis[nx][ny]=0;}}
}
int main()
{int t;int x,y; //初始位置 scanf("%d",&t);while(t--){cnt=0;memset(vis,0,sizeof(vis));scanf("%d%d%d%d",&n,&m,&x,&y);vis[x][y]=1;dfs(x,y,1);printf("%d\n",cnt);}return 0;
}
http://ybt.ssoier.cn:8088/problem_show.php?pid=1219
信息学奥赛一本通(1219:马走日)相关推荐
- 信息学奥赛一本通:1219.马走日
信息学奥赛一本通:1219.马走日 1219:马走日 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 7406 通过数: 3863 [题目描述] 马在中国象棋以日字形规则移动. 请 ...
- 信息学奥赛一本通 1254:走出迷宫 | OpenJudge NOI 2.5 6264:走出迷宫
[题目链接] ybt 1254:走出迷宫 OpenJudge NOI 2.5 6264:走出迷宫 [题目考点] 1. 广搜 迷宫问题 [解题思路] 广搜,迷宫问题模板题. 当数据量很小时,用深搜的方法 ...
- 信息学奥赛一本通 1252:走迷宫 | OpenJudge NOI 2.5 2753:走迷宫
[题目链接] ybt 1252:走迷宫 OpenJudge NOI 2.5 2753:走迷宫 [题目考点] 1. 广搜 迷宫问题 [解题思路] 设结构体类型的结点保存位置以及步数,队列中保存的是该结构 ...
- 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)
信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法 更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...
- 经典问题的另类解法——以信息学奥赛一本通c++版1216红与黑为例
题目链接:信息学奥赛一本通(C++版)在线评测系统 (ssoier.cn) 题目描述: 有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动 ...
- 信息学奥赛一本通超详细题解,动画图文题解
内容来源于微信公众号:大神编程.已经过原文作者授权. 更新时间:2020-11-5 现在开始更新基础算法题. 个人感言:从未见过如此详细的题解,动画.图文结合,适合任何水平的选手.尤其是特别适合自学的 ...
- 信息学奥赛一本通 (C++)上机练习
信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...
- 【棋盘问题】-马走日
信息学奥赛一本通(C++版)在线评测系统 解题思路: (1)题目比较好理解,要求遍历所有点的所有方案,那么是典型的DFS+回溯题. (2)由于马的移动规则受限,所以只能按照固定的格式走,按照日字型走的 ...
- 信息学奥赛一本通 第五版(C++版)
信息学奥赛一本通 第五版(C++版)第一部分 C++语言 第一章 C++语言入门 第二节 C++语言程序设计 P15 1. 编写一个能够输出Hello,World!的程序,这个程序常常作为一个初学者接 ...
最新文章
- java applet js_jsp嵌入java-applet,实现js调用web服务器程序
- Java序列化(Serialization)的理解
- 谈谈你的GC调优思路?
- 大白话 设计模式之虚拟工厂
- 无法通过ip地址连接其它电脑的数据库,但是又可以ping通,错的不是配置,而是差了一个步骤
- HDU6025 Coprime Sequence —— 前缀和 后缀和
- 【C++】指针与引用的区别
- layui表格合并单元格多表_layui合并单元格各种办法
- 软件测试基础知识整理(详细版)
- 某单机斗地主内购破解
- Sourcetree中使用cherry-pick
- 【Practical】产生不大于N的连续素数序列 —— 埃拉托色尼筛法
- 重新定义团队 谷歌的自由精神对所有公司都适用
- 小米一代扫地机器人磨损家具_为了以后的众测 篇二:无差评居家神器——Mi 小米 扫地机器人...
- Coin Change
- Django博客搭建_用户注册1_图片生成
- 车载以太网物理层PMA测试和IOP测试属于Layer 1(物理层)
- webSevice基础学习
- Negative Prompt in Stable Diffusion
- 偏最小二乘回归 Matlab