[GRYZ2014]迷宫问题
设有一个N*N方格的迷宫,入口和出口分别在左上角和右上角,迷宫格子中分别放有0和1,0表示可走,1表示不能走,迷宫走的规则如图。当迷宫给出之后,找出一条从入口到出口的通路。
输入:N
N*N的迷宫
输出:具体路径
输入样例:
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 |
输出样例:
(1,1)-(2,1)-(3,1)-(2,2)-(1,3)-(2,4)-(3,3)-(4,3)-(5,2)-(6,3)-(7,3)-(8,2)-(8,1)
const
fx:array[..] of longint=(,,-,,-,-,,);
fy:array[..] of longint=(-,,,,-,,-,);
type lujing=record
h:longint;
l:longint;
end;
var
ditu:array[..,..] of ..;
visited:array[..,..] of boolean;
b:array[..] of lujing;
n:longint;
i,j:longint;
sum:longint=;
procedure find(x,y,k:longint);
var fi:longint;
begin
b[k].h:=x;
b[k].l:=y;
if (x=) and (y=n) then inc(sum);
for fi:= to do
if ((x+fx[fi]>)
and(x+fx[fi]<=n)
and(fy[fi]+y>)
and(fy[fi]+y<=n)
and(ditu[fx[fi]+x,fy[fi]+y]<>)
and(visited[fx[fi]+x,fy[fi]+y]=true))
then
begin
visited[x,y]:=false;
x:=fx[fi]+x;
y:=fy[fi]+y;
find(x,y,k+);
x:=x-fx[fi];
y:=y-fy[fi];
if (x=) and (y=n) then inc(sum);
visited[x,y]:=true;
end;
end;
begin
read(n);
fillchar(visited,sizeof(visited),true);
for i:= to n do
for j:= to n do
read(ditu[i,j]);
find(,,);
writeln(sum);
end.
[GRYZ2014]迷宫问题的更多相关文章
- C语言动态走迷宫
曾经用C语言做过的动态走迷宫程序,先分享代码如下: 代码如下: //头文件 #include<stdio.h> #include<windows.h>//Sleep(500)函 ...
- POJ 2251 Dungeon Master(3D迷宫 bfs)
传送门 Dungeon Master Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 28416 Accepted: 11 ...
- BFS_Maze_求解迷宫最短路径
/* 10 10 #.######.# ......#..# .#.##.##.# .#........ ##.##.#### ....#....# .#######.# ....#..... .## ...
- 【刷题笔记】I'm stuck! (迷宫)-----java方案
题目描述 : 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七个字符中的一个,分别表示如下意思: '#': 任何时候玩家都不能移动到此 ...
- canvas实例 ---- 制作简易迷宫(一)
这个系列分为两部分,第一部分为迷宫的生成及操作,第二部分为自动寻路算法. 我们先看效果: See the Pen QGKBjm by fanyipin (@fanyipin) on CodePen. ...
- HTML 迷宫
今天补个遗,将很久以前研究 HTML5 的时候写的生成迷宫.迷宫寻路程序整理出来. 下载链接在文章最后. 简介 为什么要做这个 HTML5 迷宫程序?因为我喜欢.我愿意.也是向老程序员学习(见第5节) ...
- 洛谷P1605 迷宫——S.B.S.
题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...
- Java迷宫游戏
缘起: 去年(大三上学期)比较喜欢写小游戏,于是想试着写个迷宫试一下. 程序效果: 按下空格显示路径: 思考过程: 迷宫由一个一个格子组成,要求从入口到出口只有一条路径. 想了一下各种数据结构,似乎树 ...
- K - 迷宫问题
/*定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, ...
随机推荐
- Lua数组排序
代码 network = { {name = "grauna", IP = "210.26.30.34"}, {name = "arraial&quo ...
- MySQL的多实例
一.准备工作 1.关闭mysql进程 # pkill # service mysqld stop 2.从系统服务中删除mysqld # chkconfi ...
- 【转】JSON简介以及用法代码汇总
什么是JSON? JavaScript 对象表示法(JavaScript Object Notation). JSON是一种轻量级的数据交换格式,某个JSON格式的文件内部譬如可以长成这样: { &q ...
- SQL Proc(存储过程)/tran(事物)
存储过程好比C#方法 1.事物写在过程里面,直接调用存储过程 1.1没有参数的过程 /*transaction事物,procedure存储过程*/ create proc CopyTable_1_10 ...
- PDO操作mysql数据库(一)
PHP连接mysql数据库: <?php$server = "localhost";$user = "root";$pwd = "123456& ...
- php 魔术方法
PHP5.0后,php面向对象提成更多方法,使得php更加的强大!! 一些在PHP叫魔术方法的函数,在这里介绍一下:其实在一般的应用中,我们都需要用到他们!! 1.__construct() 当实例化 ...
- aspx页面中, <%= % > 与 <%# % > 的区别
关于这个问题,在多数的 ASP.NET 的教材中,都提到了一些. <%= % >与 <%# % >的区别在于:绑定时机不同, <%# % >是在控件调用DataBi ...
- OrderedDict
OrderedDict 使用dict时,Key是无序的.在对dict做迭代时,我们无法确定Key的顺序. 如果要保持Key的顺序,可以用OrderedDict: >>> from c ...
- xcopy总是询问是文件名还是目录名
我需要运行类似xcopy /y a.xml .\pics\b.xml很多次,但xcopy总是问我“文件名还是目录名” 可以这样通过管道来做echo f | xcopy /y a.xml .\pics\ ...
- 跨域Ajax请求WebService方法
一.允许跨域Ajax请求,更改如下配置: 在要调用的WebService上面添加特性标签: 二.以如下返回用户信息的WebService方法为例 三.在另一个网站上通过Ajax访问webService ...