1377:最优乘车(travel)

题目描述

题目出处:点这里

在这里插入图片描述

输入

在这里插入图片描述

输出

在这里插入图片描述

样例

输入:

3 7
6 7
4 7 3 6
2 1 3 5

输出

2

分析与思路

先以各个站点为顶点,以各线路为边,画出图来,这个图长这样
在这里插入图片描述

唔,好像有一点复杂,而且如何求出旅客朋友的换乘次数(切换线路的次数)呢?这又使我们犯了难

换个想法

如果能把求换乘次数转换成求最短路径,如果两顶点涉及换乘,边权就为一,在使用Dijkstra算法求出最短路径的长,我们就可以解决这个问题了,那么如何转化呢?

添边

今天的主角终于闪亮登场------添边
那么什么是添边呢,如何添边,添出来的边的边权是什么,添边的目的是什么?

定义

添边,顾名思义,是在图内的两端点之间增加一条边,使两端点相连

如何添边

添边是有条件的,那么,在这个题目当中,我们应如何添边呢?
举个栗子:由于本题目所求的是换乘次数而不是最短路径,所以,只要起点与另外一端点之间本没有边联系时,我们就可以在两端点之间添边

如何给添出来的边赋值边权

按照上面的方式,我们得到了这样的图
在这里插入图片描述
这个人手怎么这么抖,线都画不直
那么,新添出来的边的边值要如何确定呢?
分两种情况:
一,起点原本就可以到达该顶点
和我们最开始想的一样,若两顶点涉及到换乘的话,边权为一
二,起点原来无法到达该顶点
如果本就无法到达,那么为了不使这一条边影响Dijkstra算法的计算,我们要把边权赋值为无穷大,这样,当Dijkstra算法计算时,就会自动排除这一条边

添边的目的

看到上面的图,可能有的人眼都直了(没错就是我 ),这难道不是把图变复杂了吗,这对我解出这道题有什么帮助吗?
图确实复杂了,但题目却因此简单起来了
对于这道题,在添边前,我们的想法大概是这样的
在这里插入图片描述

这个人箭头画的好丑啊
然而,当我们换一种思路,使用添边,并把问题转换成最短路径问题时,我们的想法就比上面简单了10^18倍,大概想法如下
在这里插入图片描述
箭头画的真的好丑
看,题目和思路变得简单了起来,接下来就可以利用这个思路解决这个问题了

最后的最后

从今天这个题上也能看出来,有时候思路是要转化的,不能死钻一个牛角尖~

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该信息出现的原因是因为在映射文件中找不到com.travel.travel.mapper.UserMapper.findAll这个绑定的语句。根据引用提供的信息,你需要在Java的配置文件中创建一个包,将你的mapper映射文件放进去,并且要注意包名与你的mapper接口的包名要一致。另外,根据引用提供的信息,你还需要在pom.xml文件中加入一些配置,以确保资源和代码文件被正确加载。最后,根据引用提供的信息,你可以下载一个提供者和消费者模块的示例代码进行学习,并在http://127.0.0.1:8083/user/getUser这个地址上进行简单的调用。这些步骤和配置可以帮助你解决Invalid bound statement (not found)的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Invalid bound statement (not found): com.itheima.mapper.userMapper.SelectAll](https://blog.csdn.net/weixin_64773406/article/details/127726908)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [plan_project.zip](https://download.csdn.net/download/weixin_39846786/12233758)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值