存钱计划(三)

news/2024/11/17 9:48:11/文章来源:https://www.cnblogs.com/maomaotouou/p/18183321

存钱计划(三)
时间限制(普通/Java):1000MS/30000MS 内存限制:65536KByte
描述
TZC的店铺比较多,上次WY随便走只要能走到就行,现在他学聪明了。WY去买东西的话,确定一家店以后,当然他先要想想怎么样走到那家店走的路最少。店与店之间是有走的方向的,从店A到店B可以,店B到店A未必可以。店与店之间是有一定距离的。

上面就是路线,为方便起见,店铺都用数字表示,0表示WY的起点,店与店之间以及起点与店距离用d表示。WY从0开始到4店铺 那么最短路线为0-->3-->2-->4 总长为 60。

如果从0店铺开始到1店铺最短路线只有0-->1 总长 10。

当然也有可能没有路的情况。

输入
输入有多组测试数据。

每组数据的第一行为整数n(n<=10),表示店铺总数。所有店铺的编号为0~n-1。

接下来有若干行,每行为3个整数
a b t
表示a编号的店铺走向b编号的店铺之间的一条路径,长度为t。0<=a,b<n(为有向路径,不能反向行走)。

当a b t的值为0 0 0 表示店铺之间的路径输入完毕,不做任何处理。

最后一行输入店铺的编号k(k<n)

输入n为0时表示结束程序。

输出
输出从店铺0到k店铺的最短路线的长度。如果没有路的话,输出 NO WAY!

样例输入
5
0 1 10
0 3 30
0 4 100
1 2 50
2 4 10
3 2 20
3 4 60
0 0 0
4
5
0 1 10
2 0 50
0 3 10
0 0 0
2
0

样例输出
60
NO WAY!
提示
简单最短路径问题

采用Dijkstra算法;
每次选择离A(初始开始的那个点)最近的那个点,然后更新就好啦。
算法代码:

点击查看代码

void dijkstra(){int i,j;for(i=0;i<nj;i++)//nj就是多少个店 dis[i]=INF;//全部初始化为最大; dis[0]=0; //还没开始,先初始化为0; memset(visited,0,sizeof(visited));//来记录是否遍历过该点; for(i=0;i<nj;i++){int mark=-1,mind=INF;//mind 来记录最小的值,最优的解; for(j=0;j<nj;j++){if(!visited[j]&&dis[j]<mind)//最开始一定是第一个点 起点{mind=dis[j];mark=j;}}if(mark==-1)//全部遍历完了 break;visited[mark]=1;//记录该点,变成1吧! for(j=0;j<nj;j++){if(!visited[j]&&dis[mark]!=INF&&mp[mark][j]!=INF)//该点是否遍历过&&该点值不是无穷大&&图上对应的也不是无穷大,这边意思是mp图上还没更新带dis上所以也判断一下; {dis[j]=min(dis[j],dis[mark]+mp[mark][j]);//找到最小,最优化的,更新dis表! }}}
}
学习参考来源: [https://blog.csdn.net/achiberx/article/details/10771671]() 推荐up讲解Dijkstra算法: [https://www.bilibili.com/video/BV1uT4y1p7Jy/]()

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

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

相关文章

视野修炼-技术周刊第83期 | MarsCode

① MarsCode - 在线 AI IDE ② Turbo Console Log - 快速创建console ③ mcfly - 命令行历史搜索 ④ emoji-mart - emoji 选择组件 ⑤ OpenSumi 3.0 正式发布 ⑥ ElysiaJS - 基于Bun的Web框架 ⑦ extension.js - 跨浏览器插件开发 ⑧ 服务器实时消息获取5种方案 ⑨ Remix Yours…

实验4:代码审查

一、实验题目 :代码审查 二、实验目的 1、熟悉编码风格,利用开发环境所提供的平台工具对代码进行自动格式审查; 2、根据代码规范制定代码走查表,并按所制定的审查规范互审代码。 三、实验内容 1、IDEA环境和PyCharm环境二选一; IDEA环境 (1)预先准备在IDEA环境下实现对输…

BUUCTF-WEB(9-14)

[极客大挑战 2019]Secret File 打开题目查看源码,找到了一个文件然后就是一个按钮,点击后,他应该是反应了,但是我们看不到那我们抓包看看,这里是Burp抓包后,发到重发器发送了一遍,看看响应包,发现了然后访问这个网页就是一个源码这里没有过滤php://filter ?file=php:/…

iMessage群发,苹果iMessage短信,苹果iMessage推信,电脑版Mac Os系统自动群发iMessage完美实现 - 电脑端升级版

一、PC电脑版苹果系统(Mac OS)上实现imessage群发总结为以下几种方式: /*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些 “破解补丁” 工具欺骗macOS系统,让苹果系统…

pip虚拟环境安装包

pip虚拟环境安装包 问题描述 通常情况下,我们常使用Conda创建虚拟环境,然后再在虚拟环境内进行安装相应的软件包。虚拟环境可以让我们免收软件包的版本冲突的问题。但是有一些软件包不能通过Conda安装,只能通过pip安装。通常情况下,pip安装的软件包作用于全局,因而又会导致…

OWASP-Hackademic-Challenges

1.靶场安装 靶场下载:https://code.google.com/archive/p/owasp-hackademic-challenges/downloads 在phpstudy中搭建即可 访问页面:2.OWASP Hackademic Challenge – Challenge 1 2.1.解题点击链接,进入靶场页面上没有什么有用的消息,查看页面源代码(Ctrl+U)可以找到不同…

salesforce零基础学习(一百三十七)零碎知识点小总结(九)

本篇参考: https://help.salesforce.com/s/articleView?id=release-notes.rn_lab_conditional_visibiliy_tab.htm&release=250&type=5 https://help.salesforce.com/s/articleView?id=release-notes.rn_automate_flow_builder_automation_lightning_app.htm&re…

【转载】Verilog对数据进行四舍五入(round)与饱和(saturation)截位

Verilog对数据进行四舍五入(round)与饱和(saturation)截位 一、软件平台与硬件平台 软件平台:操作系统:Windows 8.1 64-bit开发套件:Vivado2015.4.2 Matlab2016a仿真工具:Vivado自带仿真器 二、引言在利用Verilog写数字信号处理相关算法的过程中往往涉及到对数据的量化…

UE4 C++ 攀爬功能

UE中的TEXT() UE中使用TEXT()包含字符串后,将字符串转换为宽字符,其将被处理为支持Unicode和跨平台兼容性,而普通类型的字符串为一个窄字符类型,可能在跨平台出现问题。 最主要的问题是在FString的构造函数中是接受TCHAR的所以对于FString FName FTEXT的构造需要传入TEXT(&…

消防二总线 PowerBus 通信原理简介

典型应用图 首先需要设计一种可编码寻址通用联动控制接口件。一方面它作为二总线上的挂接设备——能被区域控制器寻址,同时返回自身的状态信息; 另一方面当区域控制器需要联动它所控制的消防设备时能提供控制触点。如图①,通用联动接口通过桥式输入电路与总线相联,桥式输入…