sdut 走迷宫

走迷宫

Time Limit: 1000MS Memory limit: 65536K

题目描述

一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方向任意走一步,并且有些格子是不能走动,求从起点到终点经过每个格子至多一次的走法数。

输入

第一行一个整数T 表示有T 组测试数据。(T <= 110)

对于每组测试数据:

第一行两个整数n, m,表示迷宫有n * m 个格子。(1 <= n, m <= 6, (n, m) !=(1, 1) ) 接下来n 行,每行m 个数。其中第i 行第j 个数是0 表示第i 行第j 个格子可以走,否则是1 表示这个格子不能走,输入保证起点和终点都是都是可以走的。

任意两组测试数据间用一个空行分开。

输出

对于每组测试数据,输出一个整数R,表示有R 种走法。

示例输入

3
2 2
0 1
0 0
2 2
0 1
1 0
2 3
0 0 0
0 0 0

示例输出

1
0
4


#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;int s[10][10],n,m,num=0;
int ma[10][10]= {0}; ///0表示没来过这个坐标
int dx[]= {0,0,1,-1};
int dy[]= {-1,1,0,0}; ///上下左右四个位置
void dfs(int x,int y)
{if (x==n&&y==m){num++;        ///num为不同的路return;}int i;ma[x][y]=1;for(i=0; i<=3; i++)  ///遍历四个位置{if (x+dx[i]>=1 && x+dx[i]<=n && y+dy[i]>=1 &&y+dy[i]<=m && !ma[x+dx[i]][y+dy[i]] && !s[x+dx[i]][y+dy[i]]){ma[x+dx[i]][y+dy[i]]=1; ///记录搜索到状态dfs(x+dx[i],y+dy[i]);  ///递归调用ma[x+dx[i]][y+dy[i]]=0; ///将状态调回 因为他可能在下次搜索中用到}}
}int main()
{int t,j,i;scanf("%d",&t);while (t--){num=0;memset(ma,0,sizeof(ma));  ///不要忘记map清零scanf("%d%d",&n,&m);for (i=1; i<=n; i++){for(j=1; j<=m; j++){scanf("%d",&s[i][j]);}}dfs(1,1);  ///从1,1开始遍历printf("%d\n",num);}return 0;
}

java代码,2018/03/26重做

public class Main {private static int[][] go = { { -1, 0 }, { 1, 0 }, { 0, -1 }, { 0, 1 } }; // 上下左右public static int m = 0, n = 0, s = 0;private static int[][] vis = new int[10][10];public static void main(String[] args) {int N;Scanner sc = new Scanner(System.in);N = sc.nextInt();for (int i = 0; i < N; i++) {init();m = sc.nextInt();n = sc.nextInt();int[][] a = new int[m][n];for (int i1 = 0; i1 < m; i1++) {for (int j = 0; j < n; j++) {a[i1][j] = sc.nextInt();}}dfs(a, 0, 0);System.out.println(s);s = 0;}}private static void init() {for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {vis[i][j] = 0;}}}private static void dfs(int[][] a, int x, int y) {if (x == m - 1 && y == n - 1) {s++;return;} else {	for (int i = 0; i < 4; i++) {int xx = x + go[i][0];int yy = y + go[i][1];if (xx >= 0 && xx < m && yy >= 0 && yy < n && vis[xx][yy] ==0 && a[xx][yy]==0) { x = xx;y = yy;System.out.println("x:"+x+"--"+"y:"+y);vis[x][y] = 1;dfs(a, x, y);System.out.println("yes I do "+x+'-'+y);vis[x][y] = 0;}}}}
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云联合“产学研媒”发起 BizDevOps 共促计划,助力企业提升组织效能

2012年全球最具影响力的独立研究咨询机构Forrester曾预言&#xff1a;“In the future, all companies will be software companies”&#xff08;在未来&#xff0c;所有的企业都将成为软件企业&#xff09; 近10年来&#xff0c;DevOps运动在全球和中国风起云涌&#xff0c;…

Kubernetes HPA 的三个误区与避坑指南

前言 云计算带来的优势之一便是弹性能力&#xff0c;云原生场景下Kubernetes提供了水平弹性扩容能力&#xff08;HPA&#xff09;&#xff0c;让应用可以随着实时指标进行扩/缩。然而HPA的实际工作情况可能和我们直观预想的情况是不一样的&#xff0c;这里面存在一些认知误区。…

K8s有损发布问题探究

问题提出 流量有损是在应用发布时的常见问题&#xff0c;其现象通常会反馈到流量监控上&#xff0c;如下图所示&#xff0c;发布过程中服务RT突然升高&#xff0c;造成部分业务响应变慢&#xff0c;给用户的最直观体验就是卡顿&#xff1b;或是请求的500错误数突增&#xff0c…

解读 K8s Pod 的13种典型异常

在K8s中&#xff0c;Pod作为工作负载的运行载体&#xff0c;是最为核心的一个资源对象。Pod具有复杂的生命周期&#xff0c;在其生命周期的每一个阶段&#xff0c;可能发生多种不同的异常情况。K8s作为一个复杂系统&#xff0c;异常诊断往往要求强大的知识和经验储备。结合实战…

实践教程之如何快速使用 PolarDB-X

PolarDB-X 为了方便用户体验&#xff0c;提供了免费的实验环境&#xff0c;您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验&#xff0c;PolarDB-X 也提供免费的视频课程&#xff0c;手把手教你玩转 PolarDB-X 分布式数据库。 本期实验可以让您快…

实践教程之如何将 PolarDB-X 与大数据等系统互通

本期实验将指导您使用PolarDB-XCanalClickHouse搭建实时分析系统。 本期免费实验地址 本期教学视频地址 前置准备 假设已经根据前一讲内容完成了PolarDB-X的搭建部署&#xff0c;可以成功链接上PolarDB-X数据库。 实践教程之如何快速安装部署PolarDB-X 部署Canal Canal是…

caffe安装 cuda安装 opencv安装 cudnn安装 python相关依赖库安装

1安装cuda8.0 安装依赖库 #sudo apt-get install g #sudo apt-get install git #sudo apt-get install freeglut3-dev Ctraltf4 进入后台 输入用户名和密码 User&#xff1a; Password&#xff1a; #sudo vi /etc/modprobe.d/blacklist-nouveau.conf 输入 blacklistnouve…

加载速度提升 15%,关于 Python 启动加速探索与实践的解析

编者按&#xff1a;在刚刚结束的 PyCon China 2022 大会上&#xff0c;龙蜥社区开发者严懿宸分享了主题为《Python 启动加速的探索与实践》的技术演讲。本次演讲&#xff0c;作者将从 CPython 社区相关工作、本方案的设计及实现&#xff0c;以及业务层面的集成等方面进行介绍。…

统信软件高级工程师:关于云原生技术在容器方面的应用介绍

编者按&#xff1a;随着近几年来云原生生态的不断壮大&#xff0c;众多企业纷纷开展了用云上云的工作&#xff0c;学习云原生及容器技术对于现代工程师是必不可少的。本文整理自龙蜥大讲堂 54 期&#xff0c;统信高级研发工程师参与技术分享&#xff0c;为大家介绍了云原生的介…

sdut 区间覆盖问题

区间覆盖问题 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 用i来表示x坐标轴上坐标为[i-1&#xff0c;i]的长度为1的区间&#xff0c;并给出n&#xff08;1≤n≤200&#xff09;个不同的整数&#xff0c;表示n个这样的区间。 现在要…

opencv mat数据剪裁感兴趣的部分处理方法

Mat srcImage_r imread("c_d_right.jpg",1);Mat srcImage_l imread("c_d_left.jpg",1);Mat vv(srcImage_r,Rect(10,10,100,100));imshow("vv", vv);

解读最佳实践:倚天710 ARM芯片的 Python+AI 算力优化

编者按&#xff1a;在刚刚结束的 PyCon China 2022 大会上&#xff0c;龙蜥社区开发者朱宏林分享了主题为《ARM 芯片的 PythonAI 算力优化》的技术演讲。本次演讲&#xff0c;作者将向大家介绍他们在倚天 710 ARM 芯片上开展的 PythonAI 优化工作&#xff0c;以及在 ARM 云平台…

从敏捷协作到价值交付

前面我的同事在分享的时候&#xff0c;指出目前软件研发的最大问题不是效率&#xff0c;而是研发资源的浪费。可能产品经理半天写的需求&#xff0c;开发要埋头苦干三个月。如果错误的选择了一个对业务发展无益的需求&#xff0c;会带着大家往错误的方向越跑越远。 那么什么是…

opencv实现几幅图像拼接成一整幅大图

opencv实现几幅图像拼接成一整幅大图 标签&#xff1a; 博客opencv 2013-10-22 12:05 9846人阅读 评论(3) 收藏 举报 本文章已收录于&#xff1a; 分类&#xff1a; opencv&#xff08;14&#xff09; 作者同类文章X版权声明&#xff1a;本文为博主原创文章&#xff0c;未…

行动策略过于复杂怎么办?试试下面一些解决方法

背景 随着使用SLS告警越来越深入&#xff0c;有些用户的行动策略会配置的特别复杂&#xff0c;有些时候可以让用户通过创建多个行动策略来进行一定的精简&#xff0c;但是在一些场景下&#xff0c;用户是无法创建多个行动策略的。例如用户想要通过SLS来统一管理其各个监控系统…

从效能公式解构研发效能

这几年&#xff0c;云原生、Web3.0、元宇宙等技术的出现和应用&#xff0c;正在深刻地改变着我们这个世界。以数字技术应用为主线的数字化转型是此次人类文明变革的核心动力。在这一变革过程中&#xff0c;软件研发模式的发展起到了重至关重要的作用。从早期瀑布式、精益敏捷、…

sdut 汉诺塔系列2

汉诺塔系列2 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 用1,2,...,n表示n个盘子&#xff0c;称为1号盘&#xff0c;2号盘,...。号数大盘子就大。经典的汉诺塔问 题经常作为一个递归的经典例题存在。可能有人并不知道汉诺塔问题的典…

阿里CCO:基于 Hologres 的亿级明细 BI 探索分析实践

CCO是Chief Customer Officer的缩写&#xff0c;也是阿里巴巴集团客户体验事业部的简称。随着业务的多元化发展以及行业竞争的深入&#xff0c;用户体验问题越来越受到关注。CCO体验业务运营小二日常会大量投入在体验洞察分析中&#xff0c;旨在通过用户的声音数据结合交易、物…

ubuntu软件安装 caffe相关软件安装 学习笔记

解压rar文件sudo 7z x filename.rar解压zip文件unzip archive_name.zip解压TAR文件# tar -cvf archive_name.tar directory_to_compress运行ssdsudo sucd caffepython ///caffe出现no mudole caffe解决方法source /etc/profile编译caffemake cleanmake all -j8获得复制文件权限…

sdut 青蛙过河

青蛙过河 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 1&#xff09;一条小溪尺寸不大&#xff0c;青蛙可以从左岸跳到右岸&#xff0c;在左岸有一石柱L&#xff0c;石柱L面积只容得下一只青蛙落脚&#xff0c;同样右岸也有一石柱R&…