洛谷 P4568 [JLOI2011] 飞行路线 pytho解析

P4568 [JLOI2011] 飞行路线 pytho解析

时间:2023.11.20
题目地址:[JLOI2011] 飞行路线

题目分析

对于这个题呢就是最短路的问题了。那就可以用Dijkstra 算法,唯一不同的地方就是有免费的机票次数,那我们就先不考虑这个,就当次数为0。见代码①。这样就是一个比较模板的最短路问题了。
那现在要考虑到有免费的次数,那么就要将ans数组进行改变,引入一个次数即可,见代码②。看看代码的变化,理解清楚即可。
但是提交超时了,呃,只能说python是这样的,哈哈哈哈哈。
重在理解思路。
1

代码

① 假设免费机票次数为0

from queue import PriorityQueuen, m, k = map(int, input().split())
s, t = map(int, input().split())
e = [[] for _ in range(n)]
for _ in range(m):a, b, c = map(int, input().split())e[a].append((b, c))e[b].append((a, c))pq = PriorityQueue()
ans = [float('inf')]*n
vis = set()
pq.put((0, s))
ans[s] = 0
while not pq.empty():_, u = pq.get()if u in vis:continuevis.add(u)for v, w in e[u]:if ans[v] > ans[u] + w:ans[v] = ans[u] + wpq.put((ans[v], v))print(ans[t])     

② 超时,过70%

from queue import PriorityQueuen, m, k = map(int, input().split())
s, t = map(int, input().split())
e = [[] for _ in range(n)]
for _ in range(m):a, b, c = map(int, input().split())e[a].append((b, c))e[b].append((a, c))pq = PriorityQueue()
ans = [[float('inf')]*(k+1) for _ in range(n)]  # 引入cnt
vis = set()
pq.put((0, s, 0))     # 初始cnt为0
for i in range(k+1):ans[s][i] = 0
while not pq.empty():_, u, nowcnt = pq.get()if (u, nowcnt) in vis:continuevis.add((u,nowcnt))for v, w in e[u]:if nowcnt < k and ans[v][nowcnt+1] > ans[u][nowcnt]:ans[v][nowcnt+1] = ans[u][nowcnt]pq.put((ans[v][nowcnt+1], v, nowcnt+1))if ans[v][nowcnt] > ans[u][nowcnt] + w:ans[v][nowcnt] = ans[u][nowcnt] + wpq.put((ans[v][nowcnt], v, nowcnt))print(min(ans[t]))     

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

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

相关文章

【C++】标准模板库 STL 简介

&#x1f9d1;‍&#x1f393;个人主页&#xff1a;简 料 &#x1f3c6;所属专栏&#xff1a;C &#x1f3c6;个人社区&#xff1a;越努力越幸运社区 &#x1f3c6;简 介&#xff1a;简料简料&#xff0c;简单有料~在校大学生一枚&#xff0c;专注C/C/GO的干货分…

B站短视频如何去水印?一键解析下载B站视频!

在浏览B站视频时&#xff0c;我们有时会遇到带有水印的场景。这些水印可能会干扰我们对视频内容的观看体验&#xff0c;特别是在全屏观看时。此外&#xff0c;当我们想要保存或分享这些视频时&#xff0c;水印也会成为一种障碍。因此&#xff0c;去除水印的需求就变得非常迫切。…

fio测试磁盘速度

注意 测试 读速度 不加 --readonly fio 会 先写 文件 再 读取 直接 --readonly 参数 防止 fio 写入 文件 time fio -filename./test1 -direct1 -iodepth 1 -thread -rwrandwrite -ioenginepsync -bs1m -size1G -numjobs1 -runtime1000 -group_reporting -namemytesttime fio…

PXE高效批量网络装机

什么是PXE PXE是由Intel公司开发的最新技术&#xff0c;全称为“Preboot Execution Environment”&#xff08;预启动执行环境&#xff09;&#xff0c;工作于Client/Server的网络模式。它允许工作站通过网络从远端服务器下载映像&#xff0c;并由此支持通过网络启动操作系统。…

机器学习赋予用户“超人”的能力来打开和控制虚拟现实中的工具

原创 | 文 BFT机器人 最近&#xff0c;剑桥的研究人员开发了一种虚拟现实应用程序&#xff0c;只需用户手部的移动即可打开和控制一系列3D建模工具。 来自剑桥大学的研究人员利用机器学习开发了“HotGestures”类似于许多桌面应用程序中使用的热键&#xff08;快捷键&#xff…

fastdfs-client-java-1.30 maven 打包安装

1. 进入源代码目录&#xff0c;打开cmd mvn clean install 或者 mvn package 问题不大的话会在同级目录target目录下生成打包后文件 2. 当前目录下cmd进行maven安装 mvn install:install-file -DgroupIdorg.csource -DartifactIdfastdfs-client-java -Dversion${version} -D…

AX6000路由器更改算号器密码为自定义密码的方法

首先,你开启了此路由的SSH服务后,就可以用算号器密码SSH登录到路由器中了, 但如果你想改root的密码为自己自定义的密码时, 发现密码总是在路由器重启后,就失效了【即:又恢复为算号器的密码了】。 具体的开启SSH的方法,请参考本博客的相关文章,链接如下: 小米AX600…

Polygon zkEVM的Dragon Fruit和Inca Berry升级

1. Polygon zkEVM的Dragon Fruit升级 2023年8月31日&#xff0c;Polygon zkEVM团队宣称启动了其Mainnet Beta的Dragon Fruit升级的10天timelock&#xff0c;预计将于2023年9月11日激活。 Dragon Fruit升级点有&#xff1a; 改进了网络支持了最新的以太坊opcode——PUSH0 1.…

HTTP(Hypertext Transfer Protocol)协议

文章目录&#xff1a; 什么是HTTP&#xff1f;认识URLurlencode 和 urldecodeHTTP 协议请求和响应格式HTTP 请求&#xff08;Request&#xff09;HTTP 响应&#xff08;Response&#xff09; HTTP 请求方法HTTP 的状态码常见的Header 什么是HTTP&#xff1f; HTTP&#xff08;…

用向量数据库Milvus Cloud搭建GPT大模型+私有知识库的定制AI助手——PPT大纲助手

随着人工智能技术的不断发展,AI助手在各行各业中扮演着越来越重要的角色。在商业领域,PPT演示是一种常见的沟通方式,而定制化的PPT大纲助手能够极大地提高PPT制作效率和质量。本文将介绍如何利用向量数据库Milvus Cloud搭建GPT大模型和私有知识库,构建一款高效的PPT大纲助手…

产品智能化成照明企业“必选题” 小匠物联交出标准答卷

7月20日&#xff0c;由佛山市科学技术局、佛山市工业和信息化局、佛山市科学技术协会指导&#xff0c;佛山市照明灯具协会主办的“2023佛山市智能照明&驱动新技术研讨会”在佛山市国家火炬创新创业园宜尚PLUS酒店隆重举行。此次会议邀请近100位知名企业产品经理和研发工程师…

金蝶云星空ScpSupRegHandler任意文件上传漏洞复现 [附POC]

文章目录 金蝶云星空ScpSupRegHandler任意文件上传漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 金蝶云星空ScpSupRegHandler任意文件上传漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请…

2.发送邮件+开发注册功能

目录 1.发送邮件 1.1 邮箱设置:启用客户端 SMTP 服务 1.2 S

21、ila

1、bd文件中添加debug信号&#xff0c;右击信号线&#xff0c;debug。

3 个常识点必须先了解!0基础入门Python!

学习一门新的语言之前&#xff0c;首先简单了解下这门语言的背景。Python 是一种面向对象的解释型计算机程序设计语言&#xff0c;由荷兰人 Guido van Rossum 于 1989 年发明&#xff0c;第一个公开发行版发行于 1991 年。 Python 在设计上坚持了清晰划一的风格&#xff0c;这…

mongodb 日志详情

1 mongodb日志简介 MongoDB的日志包括两个主要部分&#xff1a;操作日志&#xff08;oplog&#xff09;和系统日志。 1.1 操作日志 操作日志&#xff08;oplog&#xff09;是一个特殊的集合&#xff0c;用于记录所有对数据库进行的操作&#xff08;如插入、更新和删除&#x…

Xrdp+内网穿透实现远程访问Linux Kali桌面

XrdpCpolar实现远程访问Linux Kali桌面 文章目录 XrdpCpolar实现远程访问Linux Kali桌面前言1. Kali 安装Xrdp2. 本地远程Kali桌面3. Kali 安装Cpolar 内网穿透4. 配置公网远程地址5. 公网远程Kali桌面连接6. 固定连接公网地址7. 固定地址连接测试 前言 Kali远程桌面的好处在于…

交易机器人-微信群通知

微信公众号:大数据高性能计算 1 背景 背景是基于人工去做交易本身无法做到24小时无时无刻的交易,主要是虚拟币本身它是24小时交易,人无法做到24小时盯盘,其次就是如果你希望通过配置更加复杂的规则甚至需要爬取最新的信息走模型进行量化交易的时候,就需要自己去做一些量化…

5V升压充电 双节锂电管理芯片 升压型双节锂电管理芯片

SC5080是一款5V 输入&#xff0c;支持双节锂电池的升压充电管理 IC 。 。 SC5080集成功率MOS&#xff0c;采用异步开关架构&#xff0c;使其在应用时仅需 要极少的外围器件&#xff0c;可有效减少整体方案尺寸&#xff0c;降低BOM成本 &#xff0c;可有效减少整体方案尺寸&…

html 菜单点击切换样式,菜单<a> 控制iframe

一.菜单控制iframe&#xff0c;只需要超链接加target <a id"toCalendar" class"nav-link" href"fullCalendar" target"my_iframe"><iframe id"mainContent" src"" name"my_iframe" height&q…