Description

设有一个n×n的方格迷宫,入口和出口分别在左上角和右上角(如图的示)

迷宫的格子分别放有0和1,0表示可通,1表示不能,迷宫走的规则如下图所示。

即从某点出发,可沿8个方向前进,前进方格中的数为0时表示可以通过,为1时表示不可以通过,如从入口开始,有2条路可以走,即向右走,或向右下角走,当迷宫给出后,找出一条从入口(1,1)到出口(1,8)的有多少条不同的中路径。

Input

Output

Sample Input

8
0 0 0 1 1 0 1 0
1 0 1 1 0 1 1 0
0 1 0 0 1 0 0 1
0 0 1 1 0 1 0 1
0 1 0 0 0 1 1 0
0 1 1 1 1 1 0 1
0 0 1 1 1 0 1 1
1 1 0 0 0 0 0 0

Sample Output

720

这题我是用搜索来做的

搜的时候,能走八个方向,如果下一个点能走就记录下来,继续搜。

var
n,x,y,s,t,i,j:longint;
a:array[0..1001,0..1001]of longint;
b:array[0..1001]of longint;
dx:array[1..8]of longint=(0,0,1,1,1,-1,-1,-1);
dy:array[1..8]of longint=(1,-1,0,1,-1,0,1,-1);
procedure search(x,y:longint);
var
i:longint;
beginif (x=1)and(y=n) thenbegininc(t);exit;end elsefor i:=1 to 8 doif (a[x+dx[i],y+dy[i]]<>1)and(x+dx[i] in [1..n])and(y+dy[i] in [1..n]) thenbegina[x+dx[i],y+dy[i]]:=1;search(x+dx[i],y+dy[i]);a[x+dx[i],y+dy[i]]:=0;end;
end;beginreadln(n);for i:=1 to n dobeginfor j:=1 to n doread(a[i,j]);readln;end;s:=0;t:=0;a[1,1]:=1;search(1,1);write(t);
end.

转载于:https://www.cnblogs.com/YYC-0304/p/9500241.html

迷宫问题pascal程序相关推荐

  1. Pascal程序结构

    Pascal程序结构 什么是Pascal程序结构 Pascal程序结构是指Pascal程序的基本组成部分及其组织方式,包括程序.单元.过程.函数.类型定义.变量定义.语句和表达式等.程序结构的良好设计 ...

  2. 迷宫pascal程序

    题意 走迷宫,要绕开障碍,走过的就不能再走,求有多少种不同的方法可以到达终点 分析 我们可以用深搜来做,输入时把障碍的坐标记录下来 const dx:array[1..4]of longint=(0, ...

  3. 我的第一次Pascal程序

    今天刚刚来学点Pascal语言,都怪我买的书大多是用Pascal语言写的,所以我只能试着学一点咯! 来一段程序员最经典的Hello World! 1 program exl_2; 2 begin 3 ...

  4. Oliver的救援pascal程序

    这题有点像电子老鼠闯迷宫,也是用广搜来做的 我是用字符来输入的 const dx:array[1..4]of longint=(1,-1,0,0); dy:array[1..4]of longint= ...

  5. 最优乘车pascal程序

    Description H城是一个旅游胜地,每年都有成千上万的人前来观光.为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴上线路.每条单程巴士线路从某个巴士站出发,依 ...

  6. 试卷批分pascal程序

    某学校进行了一次英语考试,共有10道是非题,每题为10分,解答用1表示"是",用0表示"非"的方式.但老师批完卷后,发现漏批了一张试卷,而且标准答案也丢失了,手 ...

  7. 一个搜索迷宫出路的程序

    /*1.定义一个结构体position结构体中包括一个方块的行列号和下一个可走方块的方位号 2.定义一个结构体. 包括一个一个position结构体,一个栈顶指针 3.定义入栈.出栈.取栈顶函数 4. ...

  8. 用Python写一个走迷宫的小程序(图形化:matplotlib,dfs,prim)

    不要脸的放到了Github上面,嘿嘿. Github:https://github.com/Radium1209/Maze 先看一下动态效果图(慢放): 首先生成迷宫: 主要用了两个算法:Prim和d ...

  9. 超级简单的迷宫代码 初学者程序

    迷宫 走迷宫一种比较有趣,操作简单的小游戏. #include<stdio.h> #include<getch.h> #include<stdlib.h> #inc ...

最新文章

  1. 腾讯AI Lab负责人张潼离职,张正友或接替其位
  2. mysql分页的优势_数据库经典分页几种实例及各优缺点
  3. linux u盘内容乱码,Linux挂载U盘,中文显示为乱码
  4. 我给非洲医药基金会捐的款和感谢信
  5. .NET Exceptionless 日志收集框架本地环境搭建
  6. linux(2):linux命令查看开放哪些端口
  7. Java 排序(转)
  8. 全量增量数据同步方法(Hive date_add date_sub)
  9. C语言获取系统时间的几种方式 !
  10. 知乎;如何帮助前端新人入门和提高?
  11. cocos常用工具-TiledMap
  12. 【分步入门指南】如何在10分钟内设置EOS钱包和帐户
  13. Dearun软件简介及使用指南——可以计算数据包络分析(DEA)模型效率值的软件
  14. 会计准则接轨国际 四方面体现中国特色
  15. 简支梁挠度计算公式推导_简支梁的最大挠度计算公式 l.ppt
  16. 鼎捷E10视频教程合集19大模块
  17. 制作血条/蓝条/蓄力条等进度条(Progress Bar)
  18. 面积二次矩second moment of area 极惯性矩polar moment of area 转动惯量moment of inertia面积一次矩first moment of area
  19. 基于summernote的富文本编辑器,粘贴时去除word格式
  20. UART串口通信常用协议对比——rs232、485的区别

热门文章

  1. 撒花!李宏毅机器学习 2021 版正式开放上线
  2. netcdf4excel插件安装完出现问题
  3. [scala-spark]9. RDD创建操作
  4. VTK修炼之道26:图像基本操作_三维图像切片提取
  5. 动态创建asp.net控件之我见
  6. 零起点学算法95——弓型矩阵
  7. Linux/Unix the definition of cpu-nice
  8. 在汇编程序中调用C函数
  9. CString::Format
  10. C++ 二维数组和指针数组