当前位置: 首页 > news >正文

8465:马走日

题目

总时间限制: 1000ms 内存限制: 65536kB

描述

马在中国象棋以日字形规则移动。

请编写一段程序,给定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<bits/stdc++.h>
using namespace std;
int t,n,m,x,y,ans=0;
bool c[100][100];//访问标记数组
void d(int a,int b,int sum){//DFS函数
if(sum==n*m){//终止条件:访问完所有格子
ans++;//找到一条完整路径
return;
}
int x1[8]={-2,-2,-1,-1,1,1,2,2};//8个方向的行偏移
int y1[8]={-1,1,-2,2,-2,2,-1,1};//8个方向的列偏移
for(int i=0;i<8;i++){//尝试所有8个方向
int x2=a+x1[i],y2=b+y1[i];//计算新位置
if(x2>=0&&x2<n&&y2>=0&&y2<m&&c[x2][y2]==0){//检查是否在棋盘内且未访问c[x2][y2]=true;//标记为已访问d(x2,y2,sum+1);//递归搜索c[x2][y2]=false;//回溯:取消标记}}
}
int main(){
cin>>t;//读取测试用例数
for(int i=1;i<=t;i++){
cin>>n>>m>>x>>y;//读取棋盘大小和初始位置
for(int i=0;i<n;i++){//初始化访问数组for(int j=0;j<m;j++){c[i][j]=false;}}ans=0;//重置计数器c[x][y]=true;//标记起始位置d(x,y,1);//开始搜索cout<<ans<<endl;//输出结果}return 0;
}
http://www.hskmm.com/?act=detail&tid=11041

相关文章:

  • 性能调优之NUMA调优
  • 深入解析:SpringMVC静态资源与Servlet容器指南
  • CCPC Online 2025 游寄
  • CentOS 7 容器时遇到了 yum update 报错
  • MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构
  • 基于MATLAB的视频动态目标跟踪检测搭建方案
  • U522155 数据生成(小心电脑)
  • 实用指南:OSG中osgFX库
  • 如何将带有线网卡和无线网卡的台式机作为网关/路由器
  • 2025.9.20——1橙
  • 日期
  • 【GAN网络解惑】面向产品的优化:推理裁剪、蒸馏、INT8/FP8 量化,GAN 的真实延迟如何打下来? - 教程
  • 资本与资本主义
  • 202509_NBWS_encoded_csv
  • 滑雪
  • 守序者的尊严
  • 在Ubuntu22.04平台上交叉编译针对Rv1126架构的GCC13.2.0编译器
  • 深度学习(DBBNet重参数化)
  • CAR 细胞疗法:肝癌治疗的曙光与荆棘
  • Java项目案例作业1
  • 配置Spring框架以连接SQL Server数据库
  • 这一辈子大多数日子是无聊的
  • Go 实现验证码识别
  • 跳出 AI 编程的「兔子洞」,4 个实战策略帮你解决90%的死循环
  • 用 PHP 和 Tesseract OCR 识别英文数字验证码
  • 凝望深渊时,深渊也凝望着你(黑洞与摇钱树)
  • 详细介绍:《Vuejs设计与实现》第 16 章(解析器) 中
  • spring项目部署后为什么会生成 logback-spring.xml记录
  • 【解决】Matlab函数体突然不自动缩进了
  • 202509_NBWS_logbool