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

官网和商城结合的网站网站推广合同模板

官网和商城结合的网站,网站推广合同模板,做网站开发的需求文档,网页设计包含的内容迷宫问题 定义一个二维数组: 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,1,0, };它表示一个迷宫,其中的 111 表示墙壁,000 表示可以走的路,只能横着走或竖着走,不能斜着走,要求…

迷宫问题

定义一个二维数组:

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,1,0,
};

它表示一个迷宫,其中的 111 表示墙壁,000 表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。在走路时,选择的方向的优先级度为:左>上>右>下
输入格式
一个 5×55 × 55×5 的二维数组,表示一个迷宫。

输出格式
左上角到右下角的最短路径,格式如样例所示。

输入/输出例子1

输入

0 1 0 0 0
0 1 0 1 0
0 0 0 0 0
0 1 1 1 0
0 0 0 1 0

输出

(0, 0)
(1, 0)
(2, 0)
(2, 1)
(2, 2)
(2, 3)
(2, 4)
(3, 4)
(4, 4)

样例解释

题目分析:

题目意思:这道题就是给我们一个小小的 5×55 × 55×5 的地图,要求我们按照左>上>右>下的方向优先级来走,走出最短路并且还要输出最短路它的过程。

题目所用的算法:我个人DFS,实在没想到BFS的做法了,抱歉。

算法特性:一条路走到黑,不撞南墙不回头。

题意破局点:只能横着走或竖着走,不能斜着走;要求编程序找出从左上角到右下角的最短路线。

题目思路过程:我就是让他按着我的方向数组去走,走到终点了看一下步数是不是和最小步数(当前)一样,是的话就保存一下当前过程,到了最后一定是最少的步数的过程,输出就可以了,其中会有回溯的。

题目特性:和其他要求最短路的题目不一样,这题不仅仅要求最短路,还要求过程,也是有点麻烦了。

题目挖的坑是选择方向的优先度,还有大家千万不要再去一本通抄(代码)了,我写了次都没有对!样例是对了,但是提交直接满江红啊!

代码讲解

#include<bits/stdc++.h>
using namespace std;
int sx[30],sy[30],a[5][5],x[26],y[26],minn=INT_MAX;
//没用的小知识#1:sx,全称save x,意思是保存x
//没用的小知识#1:sy,全称save y,意思是保存y
//a又是地图数组,也是标记数组
//x数组是记录走过的横坐标有哪些
//y数组是记录走过的纵坐标有哪些
int dx[4]={0,-1,0,1};//方向数组
int dy[4]={-1,0,1,0};//对应着左上右下的优先级
void print(int n){for(int i=1;i<=n;i++)printf("(%d, %d)\n",sx[i],sy[i]);//输出函数
}
void copy(int n){//保存当前最短路的过程的函数for(int i=1;i<=n;i++){sx[i]=x[i];sy[i]=y[i];}
}
void dfs(int nx,int ny,int steps){//没用的小知识#2:steps,步数,表示当前的步数x[steps]=nx;//记录现在走过的行坐标y[steps]=ny;//记录现在走过的列坐标if(nx==4&&ny==4){//走到了终点minn=min(steps,minn);//看一下现在的最少步数if(minn==steps) copy(steps);//它成为了现在的新的最短路,值得保留过程return ;//回溯,看看是否有新的最短路}for(int i=0;i<4;i++){int xx=nx+dx[i];//下一次可能走的坐标xint yy=ny+dy[i];//下一次可能走的坐标yif(xx>=0&&xx<5&&yy>=0&&yy<5&&a[xx][yy]==0){//符合没有被标记,没有越界的标准a[nx][ny]=1;//当前位置走过了,标记一下dfs(xx,yy,steps+1);//继续走a[nx][ny]=0;//回来了(刚刚那一步),所以这个点又没有走过了(方便找新的最短路)}}
}
int main(){for(int i=0;i<5;i++){for(int j=0;j<5;j++)scanf("%d",&a[i][j]);//输入}dfs(0,0,1);//从0,0开始出发,已经1步了print(minn);//输出最小步数的方案return 0;
}

就是这么简单

在这里插入图片描述

你学会了吗?记得点赞收藏加关注哟!

http://www.dtcms.com/a/473430.html

相关文章:

  • 微软新模型UserLM:如何为AI助手打造一个“真实世界”模拟器
  • Linux中页面分配alloc_pages相关函数
  • Qt---布局管理器
  • 基于单片机的图书馆智能座位管理平台
  • 中国机械工业建设集团有限公司网站高端网站建设论坛
  • Envoy Gateway + ext_authz 做“入口统一鉴权”,ABP 只做资源执行
  • vscode免密码认证ssh连接virtual box虚拟机
  • 3.6 JSON Mode与JSON Schema
  • React Native::关于react的匿名函数
  • 基于JETSON ORIN+FPGA+GMSL AI相机的工业双目视觉感知方案
  • 常规的鱼眼镜头有哪些类型?能做什么?
  • 虚实之间:AR/VR开发中的性能优化艺术
  • 新手要如何让网站被收录公司查询信息查询
  • PostgreSQL 的 hstore、arrays 数据类型
  • Java集合体系 —— Set篇
  • 硅基计划5.0 MySQL 贰 SQL约束三大范式
  • 设计模式——工厂模式
  • 变色龙哈希与隐私保护
  • 栈和队列:“单端吞吐”VS”双端通行“(第十讲)
  • ros2系统在ubuntu18.04环境下的环境搭建
  • 个人网站展示dw网站制作
  • 鸿蒙NEXT系列之精析NDK UI API(节点增删和属性设置)
  • 10个免费货源网站郑州网络科技公司有哪些
  • Spring 源码学习(十三)—— RequestMappingHandlerAdapter
  • 虚幻引擎虚拟制片入门教程 之 3D渲染基础知识:模型、材质、贴图、UV等
  • excel导出使用arthas动态追踪方法调用耗时后性能优化的过程
  • 【数据结构】强化训练:从基础到入门到进阶(2)
  • python异步编程 -什么是python的异步编程, 与多线程和多进程的区别
  • Linux系统--进程间通信--共享内存相关指令
  • 网站开发的实践报告石家庄市工程勘察设计咨询业协会