POJ3904(dfs)

Promble Description

定义一个二维数组:

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


它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。

INPUT

一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。

OUTPUT

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

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

问题链接:http://poj.org/problem?id=3984

问题分析:根据DFS算法的思想,再建立一个数组储存最少步数所走的路径,注意格式,逗号后面有个空格

AC代码

#include<iostream>
using namespace std;
int m[10][10],lx[100],ly[100],min1=9999999,vis[30][30],xe[100],ye[100];
//m记录地图,ly,lx记录路径;
int n[4][2] = { {1,0},{0,1},{-1,0},{0,-1} };//4个方向
void DFS(int x, int y, int step)//x,y为当前位置,step为走到该位置花的步数
{if (x == 4 && y == 4)//判断是否到达终点{if (step < min1){min1 = step;//记录最小步数for (int i = 0; i < step; i++){xe[i] = lx[i];//记录所走的路径ye[i] = ly[i];}}return;}for (int i = 0; i < 4; i++)//从4个方向探索{int tx = x + n[i][0];int ty = y + n[i][1];if (tx < 0 || ty < 0 || tx>4 || ty>4)continue;//判断是否越界if (m[tx][ty] == 0 && vis[tx][ty] == 0)//判断是否访问过,能不能走{lx[step] = tx;//记录路径ly[step] = ty;vis[tx][ty] = 1;//标记访问DFS(tx, ty, step + 1);//探索下一步,步数加一vis[tx][ty] = 0;//回溯取消标记}}
}
int main()
{for (int i = 0; i < 5; i++)for (int j = 0; j < 5; j++)cin >> m[i][j];DFS(0, 0, 0);printf("(0, 0)\n");for (int i = 0; i < min1; i++){printf("(%d, %d)", xe[i], ye[i]);if (i < min1 - 1)printf("\n");}
}

(转发)DFS算法博客链接:https://www.cnblogs.com/OctoptusLian/p/7429645.html

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

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

相关文章

SpringCloud注册中心高可用搭建

转载自 SpringCloud注册中心高可用搭建Spring Cloud的注册中心可以由Eureka、Consul、Zookeeper、ETCD等来实现&#xff0c;这里推荐使用Spring Cloud Eureka来实现注册中心&#xff0c;它基于Netfilix的Eureka做了二次封装&#xff0c;完成分布式服务中服务治理的功能&#xf…

吃透 | Elasticsearch filter和query的不同

少啰嗦&#xff0c;直接看东西。——罗永浩 1、query和filter的本质区别&#xff1f; 以下几张图能更好的概括&#xff1a; query关注点&#xff1a;此文档与此查询子句的匹配程度如何&#xff1f; filter关注点&#xff1a;此文档和查询子句匹配吗&#xff1f; 2、Query检索…

SpringCloud服务安全连接

转载自 SpringCloud服务安全连接Spring Cloud可以增加HTTP Basic认证来增加服务连接的安全性。 1、加入security启动器 在maven配置文件中加入Spring Boot的security启动器。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spr…

HDU1232

Problem Description 某省调查城镇交通状况&#xff0c;得到现有城镇道路统计表&#xff0c;表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通&#xff08;但不一定有直接的道路相连&#xff0c;只要互相间接通过道路可达即可…

elasticsearch7常见查询(term、match、bool、filter)

一、精准查询termterm是代表完全匹配&#xff0c;即不进行分词器分析&#xff0c;文档中必须包含整个搜索的词汇 1、term单值 字段只有一个值时候&#xff0c;用term关键词查询 查询biz_id值为1909190023901225的记录 curl -XGET http://192.168.1.73:9200/xyerp/order/_sea…

SpringCloud Eureka自我保护机制

转载自 SpringCloud Eureka自我保护机制自我保护背景 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的&#xff0c;没有ZK中角色的概念&#xff0c; 即使N-1个节点挂掉也不会影响其他节点的正常运行。 默认情况下&#xff0c;如果Eureka Server在一定时间内&#xf…

HikariCP-史上最快速的连接池

转载自 HikariCP&#xff0d;史上最快速的连接池 背景 我们知道的连接池有C3P0,DBCP,它们都比较成熟稳定&#xff0c;但性能不是十分好。 所以有了BoneCP这个连接池&#xff0c;它是一个高速、免费、开源的JAVA连接池&#xff0c;它的性能几乎是C3P0、DBCP的25倍&#xff0c;十…

一起来学ES —— 浅谈Nested结构

Nested是什么? 直观的说&#xff0c;Nested实际上就是Object的数组。如下&#xff0c;这个user就是个nested结构 { "user" : [ {"first" : "John","last" : "Smith"},{"first" : "Alice","last…

并集查经典(转发)

首先在地图上给你若干个城镇&#xff0c;这些城镇都可以看作点&#xff0c;然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点&#xff0c;让你判断它们是否连通&#xff0c;或者问你整幅图一共有几个连通分支&#xff0c;也…

关于es查询dsl的filter与must,term与match的区别

【1】创建es7 索引 put localhost:9200/pdi_cust &#xff0c; 注意 PUB_CUST_LABEL 字段分词了。 es7 不支持type &#xff0c;所以 无需指定type。 { "mappings" :{ "properties":{"RCRD_ID":{"type":"keyword"…

高级Java必看的10本书

转载自 高级Java必看的10本书 1、深入理解Java虚拟机&#xff1a;JVM高级特性与最佳实践 本书共分为五大部分&#xff0c;围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析&#xff0c;深刻揭示了JVM的工作原理。 2、从Paxos到Zookee…

ES嵌套聚合

【1】 // dsl {"_source":["RCRD_ID", "STATE", "BUSI_CODE"], "query":{"bool":{"filter":[{"term":{"STATE":"PDOS"} }, {"nested":{"path":…

进阶Java架构师必看的15本书

转载自 进阶Java架构师必看的15本书 1、大型网站技术架构&#xff1a;核心原理与案例分析 本书通过梳理大型网站技术发展历程&#xff0c;剖析大型网站技术架构模式&#xff0c;深入讲述大型互联网架构设计的核心原理&#xff0c;并通过一组典型网站技术架构设计案例&#xff0…

HDU2612(BFS算法)

Problem Descrption Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki. Yifenfei’s home is at the countryside, but Merceki’s home is in…

es 嵌套类型聚合

【1】分组后求均值聚合 //dsl {"_source":["RCRD_ID", "STATE", "BUSI_CODE"], "query":{"bool":{"filter":[{"term":{"STATE":"PDOS"} }]} }, "aggs"…

2017年,Java程序猿10本经典好书推荐

1、Java 8实战 本书全面介绍了Java 8 这个里程碑版本的新特性&#xff0c;包括Lambdas、流和函数式编程。有了函数式的编程特性&#xff0c;可以让代码更简洁&#xff0c;同时也能自动化地利用多核硬件。全书分四个部分&#xff1a;基础知识、函数式数据处理、高效Java 8 编程和…

es嵌套聚合dsl(求均值,求和)

【1】根据客户号分组后求均值和求和 // dsl {"_source":["RCRD_ID", "STATE", "BUSI_CODE"], "query":{"bool":{"filter":[{"term":{"STATE":"PDOS"} }]} }, &…

字符串拼接+和concat的区别

转载自 字符串拼接和concat的区别和concat都可以用来拼接字符串&#xff0c;但在使用上有什么区别呢&#xff0c;先来看看这个例子。 public static void main(String[] args) {// example1String str1 "s1";System.out.println(str1 100);//s1100System.out.prin…

thinking-in-java(21)并发2

think-in-java 并发前半部分&#xff08;并发1&#xff09;参见&#xff1a; https://blog.csdn.net/PacosonSWJTU/article/details/104855730 【21.4.3】中断 1、Thread类包含 interrupt方法&#xff0c;可以终止被阻塞的任务。这个方法将设置线程的中断状态。 如果一个线程…

HDU1176(DP)

Problem Description 都说天上不会掉馅饼&#xff0c;但有一天gameboy正走在回家的小径上&#xff0c;忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了&#xff0c;这馅饼别处都不掉&#xff0c;就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了&am…