news 2026/2/10 7:27:08

更弱智的算法学习 day60

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
更弱智的算法学习 day60

Bellman_ford 队列优化算法

import collections def main(): n, m = map(int, input().strip().split()) edges = [[] for _ in range(n + 1)] for _ in range(m): src, dest, weight = map(int, input().strip().split()) edges[src].append([dest, weight]) minDist = [float("inf")] * (n + 1) minDist[1] = 0 que = collections.deque([1]) visited = [False] * (n + 1) visited[1] = True while que: cur = que.popleft() visited[cur] = False for dest, weight in edges[cur]: if minDist[cur] != float("inf") and minDist[cur] + weight < minDist[dest]: minDist[dest] = minDist[cur] + weight if visited[dest] == False: que.append(dest) visited[dest] = True if minDist[-1] == float("inf"): return "unconnected" return minDist[-1] if __name__ == "__main__": print(main())

bellman_ford之判断负权回路

import sys def main(): input = sys.stdin.read data = input().split() index = 0 n = int(data[index]) index += 1 m = int(data[index]) index += 1 grid = [] for i in range(m): p1 = int(data[index]) index += 1 p2 = int(data[index]) index += 1 val = int(data[index]) index += 1 # p1 指向 p2,权值为 val grid.append([p1, p2, val]) start = 1 # 起点 end = n # 终点 minDist = [float('inf')] * (n + 1) minDist[start] = 0 flag = False for i in range(1, n + 1): # 这里我们松弛n次,最后一次判断负权回路 for side in grid: from_node = side[0] to = side[1] price = side[2] if i < n: if minDist[from_node] != float('inf') and minDist[to] > minDist[from_node] + price: minDist[to] = minDist[from_node] + price else: # 多加一次松弛判断负权回路 if minDist[from_node] != float('inf') and minDist[to] > minDist[from_node] + price: flag = True if flag: print("circle") elif minDist[end] == float('inf'): print("unconnected") else: print(minDist[end]) if __name__ == "__main__": main()

bellman_ford之单源有限最短路

def main(): # 輸入 n, m = map(int, input().split()) edges = list() for _ in range(m): edges.append(list(map(int, input().split() ))) start, end, k = map(int, input().split()) min_dist = [float('inf') for _ in range(n + 1)] min_dist[start] = 0 # 只能經過k個城市,所以從起始點到中間有(k + 1)個邊連接 # 需要鬆弛(k + 1)次 for _ in range(k + 1): update = False min_dist_copy = min_dist.copy() for src, desc, w in edges: if (min_dist_copy[src] != float('inf') and min_dist_copy[src] + w < min_dist[desc]): min_dist[desc] = min_dist_copy[src] + w update = True if not update: break # 輸出 if min_dist[end] == float('inf'): print('unreachable') else: print(min_dist[end]) if __name__ == "__main__": main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 12:57:12

亲测高中自习室:一流企业级体验复盘分享

亲测高中自习室&#xff1a;一流企业级体验复盘分享在高中学业压力日益增大的背景下&#xff0c;“自习室”早已不再是传统“安静自习”的代名词&#xff0c;而是逐渐演变为一种融合学习、管理、科技与服务的新型教育空间。作为一名长期关注教育科技发展的观察者&#xff0c;我…

作者头像 李华
网站建设 2026/2/9 8:46:36

django+Python微信小程序的食堂预约点餐系统的设计与实现

文章目录摘要系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;摘要 该系统基于Django框架和Python语言开发&#xff0c;旨在为校园或企业食堂提供一套高效的微信小程序预约点餐解决方案。通过整合微…

作者头像 李华
网站建设 2026/2/3 17:55:16

飞机订票系统(11843)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/2/6 7:00:44

基于python的登录网站验证码的生成与识别系统(源码+文档)

项目简介 登录网站验证码的生成与识别系统实现了以下功能&#xff1a; 用python实现登录网站验证码功能&#xff1a; 设计两种验证码&#xff1a; 1 图形验证码&#xff0c;用python web框架Django能够实现动态刷新。 2 滑动验证码&#xff1a; 1.服务端随机生成小拼块和带有…

作者头像 李华
网站建设 2026/2/5 13:57:17

大数据领域数据预处理的前沿趋势分析

大数据领域数据预处理的前沿趋势分析 关键词:数据预处理、大数据、自动化清洗、实时流处理、隐私增强、AI驱动、图数据处理 摘要:在大数据时代,“数据质量决定决策质量"已成为行业共识。数据预处理作为数据分析的"第一公里”,直接影响后续建模、挖掘的效果。本文…

作者头像 李华
网站建设 2026/2/7 5:57:45

uniapp+python安卓的房屋租赁系统app小程序

文章目录技术架构核心功能模块技术亮点数据交互示例安全与性能扩展性设计系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;技术架构 采用UniApp框架开发跨平台移动应用&#xff08;Android/iOS/小程…

作者头像 李华