news 2026/2/24 19:54:01

更弱智的算法学习 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/22 10:58:25

SQL调优新维度:百万级数据下的性能跃迁实战

SQL调优新维度&#xff1a;百万级数据下的性能跃迁实战 某金融平台因一条未优化的SQL导致实时风控延迟200ms&#xff0c;单日交易损失超百万——这不是电影情节&#xff0c;而是2025年某头部机构的真实事故。本文将通过百万级数据验证的SQL优化方案&#xff0c;从索引策略到执行…

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

干货满满!AI应用架构师谈法律文本AI理解系统的开发流程

干货满满!AI应用架构师谈法律文本AI理解系统的开发流程 一、引入与连接:从律师的“深夜审合同”说起 凌晨两点,张律师揉着通红的眼睛盯着电脑屏幕——一份120页的设备采购合同,他需要在明天上午之前找出所有风险点:标的描述是否模糊?价款支付条件是否合理?违约责任是否…

作者头像 李华
网站建设 2026/2/21 18:16:41

uniapp+python基于安卓的古汉语学习考试系统_f小程序

文章目录 系统概述技术架构核心功能关键技术点代码示例&#xff08;后端API&#xff09;部署方案扩展方向 系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 系统概述 基于uniapp和Python开发的安卓…

作者头像 李华
网站建设 2026/2/21 21:42:34

Visual Studio不改变文件编码情况下解决C2001

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、错误原因二、解决步骤&#xff08;无BOM UTF-8 VS Qt 兼容&#xff09;步骤1&#xff1a;强制VS识别无BOM的UTF-8文件&#xff08;核心&#xff09;方式1&…

作者头像 李华