dfs: 注意matlab里面的全局变量的使用

test.m:

clc;
clear;
global A ii dx dy vis minpath path
A=...
[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;
1 2 0 0 1 1 0 0 0 0 1 1 1 1 1 1;
1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1;
1 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1;
1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1;
1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1;
1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1;
1 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1;
1 0 1 0 1 1 1 0 1 0 0 1 1 1 1 1;
1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1;
1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1;
1 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1;
1 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1;
1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1;
1 1 1 1 1 1 1 1 1 1 0 0 0 0 3 1;
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;
];
minpath = inf
dx = [1, -1, 0, 0];
dy = [0, 0, -1, 1];
vis = zeros(16,16);
disp('迷宫图')
% A
% A = num2str(A)%% 2为入口点(2,2), 3为出口为A(15,15)
ii = 0;
[xx, yy] = size(A);
visits(2,2);
disp('第一种走出迷宫图')
fprintf('最短路:%d', minpath);
path
ys = max(path, A)
% A = num2str(A)

  

visits.m:
function [i,j]=visits(i,j)
global A ii dx dy vis minpath path
if A(i,j) == 3
% A(i,j) = 3;
if ii < minpath
minpath = ii;
path = vis;
end
fprintf('found: %d\n', ii);
% A = num2str(A)
% vis = num2str(vis)
return ;
end
% if ii > 200
% return
% end
for xi = 1:4
x = i + dx(xi);
y = j + dy(xi);
if x >= 1 && x <= 16 && y >= 1 && y <= 16 && A(x,y) ~= 1 && vis(x,y) == 0
vis(x,y) = 8;
ii = ii + 1;
% t = A(x,y);
% A(x,y) = 8;
visits(x, y);
% A(x,y) = t;
ii = ii - 1;
vis(x,y) = 0;
end
end end

  

21-matlab 迷宫题的更多相关文章

  1. Wannafly挑战赛21 C 大水题

    https://www.nowcoder.com/acm/contest/159/C dp #include <cstdio> #include <cstdlib> #incl ...

  2. 2019.11.21 做OJ题的反思

    1.利用二分法查找数组元素(适用于有序数组) #include<stdio.h> int BinarySearch(int a[],int n,int key); ]; int main( ...

  3. 51nod 1459 迷宫游戏 dijkstra模板

    链接:迷宫游戏 问题 - 51Nod  http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1459 1459 迷宫游戏  基准 ...

  4. paper 21 :Libsvm的安装和使用

    看了很多资料(包括我们实验室群里师兄上传的资料),算是掌握了libsvm的正确安装和使用,把结果告诉大家以方便以后使用. 1. 参考网站: libsvm库下载:http://www.csie.ntu. ...

  5. U68364 _GC滑迷宫

    题目背景 _GC买了一双蔡徐坤一代. 题目描述 _GC进入了一个n*m的迷宫.本题的特殊之处在于,_GC只能滑着走.具体来说就是,选定一个方向后,_GC会一直向该方向滑,直到撞到墙.会给出_GC的起始 ...

  6. 一本通之 一堆迷宫 (Dungeon Master&走出迷宫&走迷宫)

    一本通在线崩溃....... . 有图有真相 这是个三维迷宫,其实和二位迷宫差不多,只是方向多加了2个. 但这个题的输入十分恶心,一度被坑的用cin.ignore(),但还是不过... 它的正确输入方 ...

  7. MATLAB安装libsvm无法使用解决办法(转)

    buaasuozi  这是原作者: 安装libsvm 不成功有可能是你的MATLAB版本或者是编译文件版本的问题,但是不要急着换其他版本....说不定就有别的解决办法呢 首先感谢Lin教授及其实验室提 ...

  8. matlab用法总结

    1. Matlab怎么判断空矩阵http://www.ilovematlab.cn/thread-48915-1-1.html a=[ ] if isempty(a) 2.matlab寻找多个最大值位 ...

  9. libSVM笔记之(一)在matlab环境下安装配置libSVM

    本文为原创作品,转载请注明出处 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing 台湾林智仁教 ...

随机推荐

  1. TMS320F28335系列芯片地址映射表

    本表非官方资料,纯属个人学习笔记,欢迎补充 本表非官方资料,纯属个人学习笔记,欢迎补充 本表非官方资料,纯属个人学习笔记,欢迎补充 开始地址 长度 名称 物理器件 程序 数据 只读 Protected ...

  2. python 列表生成式,生成器&迭代器

    列表生成式: 需求:要对列表 [0,1,2,3,4,5,6,7,8,9]的每个元素加1 用列表生成式一步搞定: li = [i+1 for i in range(10)] # 这种写法就叫列表生成式 ...

  3. C++使用指针的优点

    使用指针可以带来如下的好处: (1)可以提高程序的编译效率和执行速度,使程序更加简洁. (2)通过指针被调用函数可以向调用函数处返回除正常的返回值之外的其他数据,从而实现两者间的双向通信. (3)利用 ...

  4. JUnit4源码学习笔记

    先上一个在Spring-test下运行的调用栈 自底向上: JUnitStarter IDEA对JUnit的支持,调用JUnitCore.run(Runner),将注解@RunWith指定的Runne ...

  5. 每日一练之排序算法(P1097 统计数字)

    某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5×10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果. ...

  6. Zabbix客户端日志出现(Not all processes could be identified, 解决

    场景:因为使用了netstat -p参数. 权限问题,zabbix_agentd是zabbix用户启动的,默认不能执行netstat -p等命令,导致从服务器取到的自动发现脚本为空 (Not all ...

  7. linux io的cfq代码理解

    内核版本: 3.10内核. CFQ,即Completely Fair Queueing绝对公平调度器,原理是基于时间片的角度去保证公平,其实如果一台设备既有单队列,又有多队列,既有快速的NVME,又有 ...

  8. GIS案例学习笔记-三维生成和可视化表达

    GIS案例学习笔记-三维生成和可视化表达 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:针对栅格或者矢量数值型数据,进行三维可视化表达 操作时间:15分钟 案 ...

  9. [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(一) -- 安装jdk(含jre)及 MySql 5.6.39

    [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(一)  --  安装jdk(含jre)及 MySql 5.6.39 回老家已经有一段时间了, 四五线 ...

  10. Dapper查询返回Datatable

    dapper封装的扩展方法中,没有直接返回datatable的方法,项目中有些时候需要用到这样的返回格式,而为了项目数据框架的统一性, 不好直接用其他框架,如果直接将查询出来的泛型集合转datatab ...