更弱智的算法学习 day56
使用并查集遍历所有边。当遇到一条边连接的两个节点已经属于同一连通分量时这条边就是冗余边因为它会形成环。由于代码按输入顺序遍历边最后记录的冗余边即为输入中最后出现的。遍历每条边时若s和t已连通is_same(s, t)为True说明添加该边会形成环因此记录为result。由于继续遍历后续边result会被更新最终保留的是最后一条导致环的边符合题目要求。若非冗余边则调用join(s, t)合并集合维护连通性。​输出​打印最后记录的冗余边。father list() def find(u): if u father[u]: return u else: father[u] find(father[u]) return father[u] def is_same(u, v): u find(u) v find(v) return u v def join(u, v): u find(u) v find(v) if u ! v: father[u] v if __name__ __main__: # 輸入 n int(input()) for i in range(n 1): father.append(i) # 尋找冗余邊 result None for i in range(n): s, t map(int, input().split()) if is_same(s, t): result str(s) str(t) else: join(s, t) # 輸出 print(result)from collections import defaultdict father list() def find(u): if u father[u]: return u else: father[u] find(father[u]) return father[u] def is_same(u, v): u find(u) v find(v) return u v def join(u, v): u find(u) v find(v) if u ! v: father[u] v def is_tree_after_remove_edge(edges, edge, n): # 初始化并查集 global father father [i for i in range(n 1)] for i in range(len(edges)): if i edge: continue s, t edges[i] if is_same(s, t): # 成環即不是有向樹 return False else: # 將s,t放入集合中 join(s, t) return True def get_remove_edge(edges): # 初始化并查集 global father father [i for i in range(n 1)] for s, t in edges: if is_same(s, t): print(s, t) return else: join(s, t) if __name__ __main__: # 輸入 n int(input()) edges list() in_degree defaultdict(int) for i in range(n): s, t map(int, input().split()) in_degree[t] 1 edges.append([s, t]) # 尋找入度為2的邊並紀錄其下標(index) vec list() for i in range(n - 1, -1, -1): if in_degree[edges[i][1]] 2: vec.append(i) # 輸出 if len(vec) 0: # 情況一刪除輸出順序靠後的邊 if is_tree_after_remove_edge(edges, vec[0], n): print(edges[vec[0]][0], edges[vec[0]][1]) # 情況二只能刪除特定的邊 else: print(edges[vec[1]][0], edges[vec[1]][1]) else: # 情況三 原圖有環 get_remove_edge(edges)

相关新闻

【软件测试】6_性能测试实战 _建立测试环境

【软件测试】6_性能测试实战 _建立测试环境

文章目录一、建立测试环境1.1 性能测试环境的特点1.2 如何保证测试环境与生产环境的一致性二、构造测试数据-慢查询使用2.1 good_insert.py一、建立测试环境 性能测试的环境独立使用 —— 其他测试人员不可用使用该环境 在进行性能则试之前,需要先完成性能测试环境…

2026/7/2 20:56:20 阅读更多 →
如何用CLAUDECODE重塑嵌入式开发

如何用CLAUDECODE重塑嵌入式开发

现在请你帮我创建两个SKILL,第一个SKILL是硬件原理图对比 专家:用来比对鲁班猫官方的原理图(INIT_LubanCat3_EBF41051 3V1R0_SCH_*.png)和我公司硬件人员画得原理图(CD0_RK3576_MA IN_V10_*.png)之间的差异,然后给出差…

2026/7/3 17:03:43 阅读更多 →
3.3 xue

3.3 xue

3.3 InSAR中的对流层与电离层校正及使用GACOS对流层校正 sarsarsar 相关参考文献: GACOS: • Yu, C., N. T. Penna, and Z. Li (2017), Generation of real-time mode high-resolution water vapor fields from GPS observations, J. Geophys. Res. Atmos., 122, 2008–20…

2026/7/3 17:03:42 阅读更多 →

最新新闻

Optimus钩子(Hooks)机制详解:实现数据转换后处理的完整教程

Optimus钩子(Hooks)机制详解:实现数据转换后处理的完整教程

Optimus钩子(Hooks)机制详解:实现数据转换后处理的完整教程 【免费下载链接】optimus Optimus is an easy-to-use, reliable, and performant workflow orchestrator for data transformation, data modeling, pipelines, and data quality m…

2026/7/4 8:01:13 阅读更多 →
CANN/ge LLM集群连接API

CANN/ge LLM集群连接API

# link_clusters 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorc…

2026/7/4 8:01:13 阅读更多 →
计算机毕业设计之springboot营养配餐管理系统

计算机毕业设计之springboot营养配餐管理系统

随着当今网络的发展,时代的进步,各行各业也在发生着变化,于是网络已经逐步进入人们的生活,给我们生活或者工作提供了新的方向新的可能。 本毕业设计的内容是设计实现一个基于springboot框架的营养配餐管理系统。它是以java语言&am…

2026/7/4 7:59:12 阅读更多 →
如何轻松抢到B站会员购热门门票:开源抢票工具的终极解决方案

如何轻松抢到B站会员购热门门票:开源抢票工具的终极解决方案

如何轻松抢到B站会员购热门门票:开源抢票工具的终极解决方案 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy 还在为抢不到B站会员购的热门门票而烦恼吗?每次心仪的漫展、…

2026/7/4 7:57:11 阅读更多 →
地平线征程5芯片与iCAR V27的智能驾驶技术解析

地平线征程5芯片与iCAR V27的智能驾驶技术解析

1. 地平线HSD iCAR V27上市核心信息速览2024年智能电动车市场迎来重磅新成员——搭载地平线征程系列芯片的iCAR V27正式以16.98万元起售价杀入主流市场。这款定位"年轻人的第一台智能SUV"的车型,在深圳大湾区车展首发当日便斩获超3000台预售订单&#xff…

2026/7/4 7:57:11 阅读更多 →
NeverSink过滤器的《流放之路2》寻宝指南:从新手到专家

NeverSink过滤器的《流放之路2》寻宝指南:从新手到专家

NeverSink过滤器的《流放之路2》寻宝指南:从新手到专家 【免费下载链接】NeverSink-Filter-for-PoE2 This is a lootfilter for the game "Path of Exile 2". It adds colors, sounds, map icons, beams to highlight remarkable gear and inform the use…

2026/7/4 7:53:10 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻