首页 > 其他分享 >6.2

6.2

时间:2024-11-18 17:43:54浏览次数:1  
标签:city weight parent self edges 6.2 root

edges = [
("Pe", "T", 13),
("Pe", "N", 68),
("Pe", "M", 78),
("Pe", "L", 51),
("Pe", "Pa", 51),
("T", "N", 68),
("T", "M", 70),
("T", "L", 60),
("T", "Pa", 61),
("N", "M", 21),
("N", "L", 35),
("N", "Pa",36),
("M", "L", 56),
("M", "Pa", 57),
("L", "Pa", 21),
]
class UnionFind:
def init(self, n):
self.parent = list(range(n))
self.rank = [0] * n

def find(self, u):  
    if self.parent[u] != u:  
        self.parent[u] = self.find(self.parent[u])  
    return self.parent[u]  

def union(self, u, v):  
    root_u = self.find(u)  
    root_v = self.find(v)  
    if root_u != root_v:  
        if self.rank[root_u] > self.rank[root_v]:  
            self.parent[root_v] = root_u  
        elif self.rank[root_u] < self.rank[root_v]:  
            self.parent[root_u] = root_v  
        else:  
            self.parent[root_v] = root_u  
            self.rank[root_u] += 1  

def kruskal(edges):
edges.sort(key=lambda edge: edge[2])
uf = UnionFind(len(set(city for edge in edges for city in edge[:2])))
mst = []

for u, v, weight in edges:  
    if uf.find(u) != uf.find(v):  
        uf.union(u, v)  
        mst.append((u, v, weight))  
  
return mst  

city_map = {
"Pe": 0, "T": 1, "N": 2, "M": 3, "L": 4, "Pa": 5
}

edges_with_indices = [(city_map[u], city_map[v], weight) for u, v, weight in edges]

mst_edges = [(list(city_map.keys())[u], list(city_map.keys())[v], weight) for u, v, weight in kruskal(edges_with_indices)]

print("最小生成树的边:")
for u, v, weight in mst_edges:
print(f"{u} - {v}: {weight}")

2023310143007

标签:city,weight,parent,self,edges,6.2,root
From: https://www.cnblogs.com/zzzzddddd/p/18553264

相关文章

  • 6.2
    edges=[("Pe","T",13),("Pe","N",68),("Pe","M",78),("Pe","L",51),("Pe","Pa",51),("T","N",68),("T","M......
  • WinRAR(解压缩工具)v6.23.0绿化版
    前言    很多同学在安装了WinRAR之后,每次用这个软件解压文件时,都会先跳出一个广告。这个广告就像打开了一个新窗口,很打扰人。从WinRAR的5.40版本开始,哪怕是简体中文版的,都会这样弹广告。不管你有没有注册账号,都会有这个广告跳出来功能特点1、压缩算法的改变:64位版本......
  • 6.6.279 发布下载,新增功能概览
    6.6.279发布下载,新增功能概览6.6.279forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,releasedNov13,2024请访问原文链接:https://sysin.org/blog/nexpose-6/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序新增功能......
  • Nexpose 6.6.278 发布下载,新增功能概览
    Nexpose6.6.278forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,releasedNov07,2024请访问原文链接:https://sysin.org/blog/nexpose-6/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序新增功能Nexpose2024-11-07......
  • Nexpose 6.6.277 for Linux & Windows - 漏洞扫描
    Nexpose6.6.277forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,releasedNov06,2024请访问原文链接:https://sysin.org/blog/nexpose-6/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地漏洞扫描程序新增功能2024年11月......
  • CCleaner Professional v6.28 中文授权版
    开发者Piriform打造的 CCleanerProfessional 是业内公认的高效PC清理和优化工具之一。它通过自动清理功能,能定期清理垃圾文件,保持电脑运行效率。同时,提供的自动隐私保护功能可在不使用浏览器时自动清理历史记录和Cookies。该版本已授权,可以使用全部功能。操作说明:1、将......
  • zabbix6.2添加mysql数据库监控
    zabbix官网链接:MysqlmonitoringandintegrationwithZabbix如何在zabbix上添加mysql的监控,官网已经说的很清楚了,照着官网的介绍做就行了,我只说明遇到的坑。 步骤2中的template_db_mysql.conf的内容在官网选择文档版本下的Source链接。这个文件默认是放在/etc/zabbix/zabbix......
  • 部署nginx-1.26.2
    1.前置工作1.1下载包zlib-1.3.1.tar.gzopenssl-3.2.2.tar.gzpcre2-10.44.tar.gznginx-1.26.2.tar.gz2.创建目录#创建⽬录mkdir-p/data/nginx/logschmod755/root#重要配置chown-Rroot:root/data/nginx3.解压安装包#前提条件,取决于nginx版本问题,由于⽐较......
  • Nexpose 6.6.274 发布下载,新增功能概览
    Nexpose6.6.274发布下载,新增功能概览Nexpose6.6.274forLinux&Windows-漏洞扫描Rapid7VulnerabilityManagement,releasedOct16,2024请访问原文链接:https://sysin.org/blog/nexpose-6/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org您的本地......
  • 2024.6.29
    2024.6.29T1题面给定一个序列\(a\),从中若干个数,第\(i\)个元素有\(p_i\)的概率被选中,每个元素是否被选中之间是相互独立的。如果\(b\)的异或和为\(s\),称它的权值为\(s^2\),求\(b\)的权值的期望。答案对\(10^9+7\)取模。题解因为是异或操作,我们可以转到二进制......