news 2026/4/23 14:10:22

更弱智的算法学习 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/4/19 5:34:19

SQL调优实战密码:索引策略与Explain工具深度破局之道

SQL调优实战密码&#xff1a;索引策略与Explain工具深度破局之道 某电商平台因一条未优化的SQL查询导致核心业务延迟3秒&#xff0c;每小时损失数万元交易额——这不是危言耸听&#xff0c;而是真实发生的数据库性能灾难。本文将深度拆解SQL优化中的索引策略、查询优化案例及Ex…

作者头像 李华
网站建设 2026/4/18 4:24:13

ArcGIS大师之路500技---070对齐边工具

文章目录前言一、 需求说明二、 对齐边工具前言 本文介绍使用对齐边工具修复面与面之间缝隙。 一、 需求说明 如下图&#xff0c;快速修复面缝隙。 二、 对齐边工具 添加拓扑工具条&#xff0c;在菜单栏空白处&#xff0c;右键—拓扑。 开始编辑&#xff0c;点击1处&…

作者头像 李华
网站建设 2026/4/23 14:01:14

Java做人工智能开发,如何打破技术适配与效率困局?

随着 AI 技术在企业服务领域的深度渗透&#xff0c;Java 企业向 AI 应用转型已成为数智化升级的关键方向。但长期以来&#xff0c;许多 Java 开发团队面临着一个核心难题&#xff1a;成熟的 Java 技术栈与新兴 AI 能力如何无缝衔接&#xff1f;传统开发模式下&#xff0c;AI 应…

作者头像 李华
网站建设 2026/4/16 13:27:49

在 Linux 中查看磁盘运行占用(I/O 使用率)

1. iostat - 最常用的磁盘 I/O 监控工具 # 安装&#xff08;如未安装&#xff09; sudo apt install sysstat # Ubuntu/Debian sudo yum install sysstat # CentOS/RHEL# 查看磁盘 I/O 统计 iostat -dx 1 3 # 每1秒刷新&#xff0c;共显示3次 输出关键指标&#xff1a; %u…

作者头像 李华
网站建设 2026/4/21 22:43:14

超轻量图片水印添加工具:13.5KB绿色版,支持自定义内容与位置

在社交媒体分享原创图片&#xff0c;却担心被他人随意盗用&#xff1f;为大量商品图添加统一的品牌标识&#xff0c;又嫌Photoshop等大型软件操作繁琐&#xff1f;一款轻量、易用且功能精准的水印添加工具&#xff0c;往往是自媒体人、电商卖家及摄影爱好者的高频需求。 今天介…

作者头像 李华