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

服装公司电子商务网站建设策划书重庆装修公司排名前十口碑推荐

服装公司电子商务网站建设策划书,重庆装修公司排名前十口碑推荐,工商局官网登录入口,asp.net网站开发流程及相关工具题目 leetcode787. K 站中转内最便宜的航班 题目分析 给定一个城市图,每个城市通过航班与其他城市相连。每个航班都有一个起点、终点和价格。你需要找到从起点城市 src 到终点城市 dst 的最便宜路径,但这条路径最多只能经过 k 个中转站。你需要返回这…

题目

leetcode787. K 站中转内最便宜的航班

题目分析

给定一个城市图,每个城市通过航班与其他城市相连。每个航班都有一个起点、终点和价格。你需要找到从起点城市 src 到终点城市 dst 的最便宜路径,但这条路径最多只能经过 k 个中转站。你需要返回这种路径的最低价格,如果不存在这样的路径,则返回 -1。

输入:

n:城市的数量
flights:航班的列表,每个航班用 [fromi, toi, pricei] 表示,表示从城市 fromi 到城市 toi 的航班价格为 pricei
src:起点城市
dst:终点城市
k:最多经过的中转站数

输出:

最便宜的价格,如果没有满足条件的路径,则输出 -1

思路分析

我看到这道题第一时间想的就是dijkstra算法,因为我也不会别的算法。
对于k的限制,我想到可以在优先队列中维护一个当前层级的变量,当到达的层级大于k时,就不再扩展了。

但是我没考虑到k的限制可能会导致最短路径无法达成,并且由于dijkstra算法的性质,其他路线也被直接丢弃了

于是我尝试不使用visited数组记录访问过的节点,将每个节点的后继节点都加入队列中,只有层级大于k时,才会跳过。此时算法退化成了变体的广度优先搜索算法,会搜索每一条在中转数在k内的路径。

但是,当数据量大了之后,显然这个算法会超时。

继续思考,发现dijkstra算法找到的是最优路径,但是其中转节点可能很多,而真正的路径只可能在中转节点比最优路径少的路径里,其他中转节点多于最优路径的路径完全可以剪枝,因为他们的费用不可能更低。

按照这个思路,只需要维护一个每个节点的最小中转数,任何多于最小中转数的路径都可以剪枝,因为对于每一个被剪枝的路径来说,在其之前都已经有至少一条路径价格比它低的同时中转数还要小于它

代码

class Solution:def findCheapestPrice(self, n: int, flights: List[List[int]], src: int, dst: int, k: int) -> int:# 建立邻接表maps=[[]  for _ in range(n)]for edge in flights:maps[edge[0]].append(edge[1:])#最小堆模拟优先队列,(价格,节点编号,层级)pq=[(0,src,0)]#当前每个节点的中转数记录visit=[n+1]*nwhile pq:w,p,c=heappop(pq)#过滤超过层级k的节点,剪枝中转城市多余当前节点记录的点if c>=visit[p] or c>k+1:continueif  p == dst:return w# 直接等就可以,比它大的到不了这一步visit[p]=c# 将后继节点加入优先队列for point in maps[p]:heappush(pq,(w + point[1],point[0],c+1))return  -1

提交

一直交刷成绩QAQ
在这里插入图片描述


2024/8/8

http://www.yayakq.cn/news/697535/

相关文章:

  • 做网站前的准备工作wordpress小程序美化
  • 怎么做本地婚姻介绍网站百度大数据分析
  • 外贸鞋的网站建设农业公司网站源码
  • 秦皇岛网站制作专家教您简单建站建网站的软件优帮云
  • 莆田网站建设招标外贸展示型网站建设公司
  • 中国移动深圳有限公司门户网站局域网内网站建设
  • 天津通用网站建设方案重庆企业站seo
  • 网站内容建设招标小程序定制公司推荐
  • 设计个人网站什么是门户网站广告
  • 房地产网站建设方案书深圳做响应式网站设计
  • 河南建设网站官网手机版网站怎么上传
  • 蓝色 宽屏 网站 模板下载WordPress管理图片
  • 免费网站建站页面html手机网站开发
  • 宁波百度网站建设简单的网站后台管理系统
  • 网站上线需要多久免费网站认证
  • 德州做网站多少钱湖南省百川电力建设有限公司网站
  • 长春网站制作优势吉网传媒网站建设设计思想
  • 饰品类网站建设定位wordpress 目录布局
  • 不用编程做APP和响应式网站东莞网页制作
  • 北京工程建设质量协会网站比较好的网站设计公司
  • 辽阳建设网站公司报价客户管理系统 软件
  • 企业网站建立步骤陇西做网站的公司
  • 厦门软件园网站开发公众号怎么制作推文
  • 网站域名注册证书查询创建个人百度百科
  • dede网站地图栏目如何上传文件网站建设 工作计划
  • 云南建设网站首页光辉国际猎头公司
  • 网站的demo怎么做wordpress中英翻译
  • 江都区城乡建设局门户网站网站建设需要考虑什么因素
  • 建设商城购物网站大做网站
  • 祁东县建设局网站如何在网络上推广产品