图论学习笔记2

news/2025/3/24 15:04:47/文章来源:https://www.cnblogs.com/wusixuan/p/18787493

请先阅读图论学习笔记 1。

在这篇文章里,我们将继续以前 tarjan 求解的强连通分量和双连通分量,讲解其缩点相关内容。

也会讲解一些特殊的图:基环树与仙人掌图、最小树形图。

缩点

我们知道,将强连通分量、双连通分量缩点之后会形成一棵树

在学术上,我们将边双连通分量缩点之后的树称为 Bridge Tree,点双连通分量缩点之后的树称为 Block-Cut Tree,强连通分量缩点之后的树称为 SCC DAG

缩点除了写法没什么好讲的,而且有一些已经在 图论学习笔记 1 中涉及到。就是将连通分量变成一个点,在相同连通分量中点之间的边隐藏,只保留连通分量之间的边。

先看题。

CF1000E We Need More Bosses

*2100,好像没多难。

题目大意:给定一个 \(n\)\(m\) 边的连通无向图,需要找到两个点 \(s,t\),使得 \(s\)\(t\) 必须要经过的边最多,即使 无论怎么走都会经过 的边最多。

我们很容易发现这东西和边双连通分量扯上了关系,因为边双连通分量的定义是:极大的,其中任意两个点之间至少有两条不重合的路径的连通子图。

显然,如果 \(s\)\(t\) 在同一个边双连通分量内,它们必须要经过的边一定为 \(0\) 条。

从而我们可以得出,\(s\)\(t\) 之间必须要经过的边,全部都是桥。

于是不妨想到对边双连通分量缩点。画图可以得到,必须要经过的边一定是 Bridge Tree 上面 \(s\)\(t\) 处于的边双连通分量(假定为 \(x\)\(y\))之间的路径。

于是问题变成了这样:给定一棵树,需要你求上面的最长路。

这不就是树的直径吗!当然这里可能有一些难写。

也有另一种做法:枚举 \(lca\) 的位置,显然 \(x\)\(y\) 一定是在 \(lca\)子结点的不同的子树里面(要不然它们的 lca 就不是 \(lca\) 这个值了),设为 \(T_1\)\(T_2\)

要使路径长度最长,需要使 \(x\)\(T_1\)深度最大的位置,\(y\) 也在 \(T_2\)深度最大的位置。

显然一个子树中的深度最大位置可以使用树形 dp来求,是基础中的基础了。

然后要算答案的时候,直接取子结点的子树最大深度 的 最大值和次大值 相加即可。

这道题就这么做完了,思维含量真的不高,*2100 可能是边双连通分量的加成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/904058.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

构建一个Pedro Robot

Pedro 2.0是一个完全开源的项目,旨在为每个人提供可访问和可定制的服务。Pedro Robot是一个完全开源的项目,设计为每个人都可以访问和定制。组装起来很容易,不需要螺丝,不需要胶水,不需要工具!完美的制造商,学生和教育工作者希望探索机器人和编程。 所有文档都可以在Pedr…

一文搞懂MCP协议与Function Call的区别

一、前言 大家好,我是六哥! 今天咱们聊聊编程里两个听起来有点复杂的概念——MCP协议和函数调用(function call),其实用大白话来讲,它们就是两种不同的“沟通方式”,就像咱们人与人之间交流也有不同的方式一样。下面我就用生活中的例子和Python代码,给大家好好讲讲它们…

基于Arduino设计RFID门锁系统

使用基于arduino的RFID锁系统实现无缝,无钥匙进入和增强保护,从而改变您的门安全性。你是否厌倦了每次需要开门时都要找钥匙?不如建一个智能锁系统,你只需刷卡就能开门?在本节中,我们将学习如何使用Arduino构建RFID门锁系统。这是一种既有趣又安全的开门方式。 这个Ardui…

MQ消息持久化解决方案

消息持久化 1. RabbitMQ 发送与消费消息的模型2. 消息丢失的几种情况?生产者发送消息未到达交换机消息到达交换机,没有正确路由到队列MQ 宕机,队列中的消息不见了消费者收到消息,还没消费,消费者宕机3. 如何保证消息不丢失? 3.1 生产者确认机制publisher-confirm消息成功…

『Plotly实战指南』--柱状图绘制高级篇

在数据可视化的世界里,柱状图是一种直观且强大的工具,用于展示数据的分布、比较和趋势。 从基础的柱状图出发,我们可以进一步探索更复杂的图表类型,如分组柱状图和堆积柱状图,它们在处理多维数据和复杂关系时具有独特的优势。 本文将深入探讨如何使用Plotly库绘制这些高级…

读DAMA数据管理知识体系指南28文件和内容管理概念(下)

读DAMA数据管理知识体系指南28文件和内容管理概念(下)1. 文件和档案 1.1. 文件(Document)是包含任务说明,对执行任务或功能的方式和时间的要求以及任务执行和决策的日志等的电子或纸质对象 1.2. 只有部分文件才能称为档案(Record)1.2.1. 档案可用于证明所做的决策和所采取的…

AMD Instinct™MI300系列微架构

AMD Instinct™MI300系列微架构 AMD Instinct MI300系列加速器基于AMD CDNA 3架构,旨在为HPC、人工智能(AI)和机器学习(ML)工作负载提供领先性能。AMD Instinct MI300系列加速器非常适合极端的可扩展性和计算性能,可以在单个服务器到世界上最大的EB级超级计算机的所有设备…

节点级架构与MI300和MI200系列性能计数器和指标

节点级架构 MI300系列节点级架构,显示了8个完全互连的MI300X OAM模块,通过重定时器和HGX连接器连接到(可选)PCIEe交换机。 如图5-9所示,显示了具有双插槽配置的AMD EPYC处理器和八个AMD Instinct MI300X加速器的系统的节点级架构。MI300X OAM通过PCIe Gen 5 x16链路(黄线…

推荐专著《AI芯片开发核心技术详解》(1)、《智能汽车传感器:原理设计应用》(2)、《TVM编译器原理与实践》(3)、《LLVM编译器原理与实践》(4)

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

GPU到GPU通信选项

GPU到GPU通信选项 将讨论使用AMD Instinct™MI250和AMD InstinctTM MI250X GPU的系统中的GPU到GPU通信选项。每个MI250(X)GPU由两个图形计算芯片(GCD)组成。如图4-20所示,显示了具有4个MI250 GPU(8个GCD)的节点的示意图。每个绿色框代表一个MI250 GPU和两个GCD。GCD通过…

2025年3月月记

2025.3.1 新的一月到来啦!今天干了个啥呢?好像没干啥也是把昨天编程学习的作业做了,待会又要去学S组的知识了,我先去刷题了。。。 OK啊,也是把课学完了,待会我又要去打atcoder了,今天学的是差分约束,其实就是图上的知识,主要的表达形式是:u <= v + w或者u >= v…

Linux版本的MAT(Eclipse Memory Analyzer)内存分析工具使用

首先先下载对应平台的工具 官方地址:https://eclipse.dev/mat/download/ 因为我是arm的架构 所以下载的是arm64的安装包 下载完成后解压 得到以下内容 先修改初始化的启动的内存大小 vim MemoryAnalyzer.ini 主要修改这个值 这个要尽量大点 不然我们的内存分析文件很大 会执行…