题解:P11967 [GESP202503 八级] 割裂

news/2025/4/3 0:12:48/文章来源:https://www.cnblogs.com/xueruhao/p/18804637

考场上花费了 \(2.5\) 小时,连题都没读懂,悻悻离去。是该提高一下自己的阅读理解能力了。

题意概述

给定一棵 \(n\) 个节点的树,定义了若干个好点对和一个坏点对。要求删除某个节点后:

  • 对于每个好点对,两个端点仍然连通(即删除节点不在它们之间的路径上)。
  • 对于坏点对,删除节点必须位于它们之间的路径上(否则删除后坏点对仍然连通)。

于是问题转化为:统计那些既落在坏点对路径上、又不落在任何好点对关键路径上的节点。

Solution

不难想到利用 Tarjan 离线 LCA 一次性求出所有点对的最近公共祖先,再结合树上差分的方法更新好点对信息,同时标记坏点对路径上的节点,最终统计满足条件的节点。

具体地,对于每个好点对 \(\langle u, v \rangle\) 求出其最近公共祖先 \(L\),方便在树上差分中减去重复计数。同时也用来求出坏点对的 LCA,以确定坏点对路径上需要标记的节点范围。

使用 DFS 遍历树,在 DFS 中利用并查集维护当前节点的祖先信息:

  • 每访问到一个节点,就将其初始化为自己的祖先。
  • 遍历完子节点后,通过并查集合并子节点,并将父节点更新为该节点的祖先。
  • 对于每个查询,当另一端已经被访问时,即可通过并查集找到当前二者的 LCA。

对于每个好点对 \(\langle u, v \rangle\)

  • \(u\)\(v\) 上各加 \(1\)
  • \(L\)(二者 LCA)上减 \(1\)
  • \(L\) 的父节点上再减 \(1\)(避免重复扣除)。

最后利用后序遍历(或按深度从大到小累加)将这些差分值向上传递,得到每个节点被“好点对路径”覆盖的次数。

不难发现,只有差分值为 \(0\) 的节点才不会影响好点对的连通性。

利用坏点对 \(\langle b_U, b_V \rangle\) 的 LCA \(L\),从 \(b_U\)\(L\) 以及从 \(b_V\)\(L\) 上的所有节点都标记为“坏”节点。只有这些节点被删除时才能使坏点对断开。
最终遍历所有节点,如果一个节点既被标记为坏节点,又在好点对差分累加中为 \(0\)(不在任何好点对的关键路径上),则满足条件,计入答案。

时间复杂度 \(O(n + a)\),差点拿下最优解,对比官方题解跑得飞快。

link

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

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

相关文章

D365 邮箱发送,自动追加 CRM:0000001的问题处理

需要改下这个配置,去掉邮件标题 后面带的 CRM:0000001 记得收藏并关注,掌握更多相关知识!!!

4.1 函数

1.1 定义域 A,记作dom f=A; 值域记作:ran f1.2 函数的特点 A到B的函数是从A到B的二元函数的子集,且A中的每一个元素a都必须是f的有序对(a,b)的第一分量,通常把(x,y)∈f,记作f(x)=y,f把x映射成了y *定义域必须在第一分量里都出现 函数个数:nm,不同关系的个数2mn1.3 常…

一句话胜千言系列:BatchNorm和LayerNorm

1. 前言 一方面便于日后自己的温故学习,另一方面也便于大家的学习和交流。 如有不对之处,欢迎评论区指出错误,你我共同进步学习! 2. 正文 区别就一句话:BatchNorm是对一个batch-size样本内的每个特征[分别]做归一化,LayerNorm是[分别]对每个样本的所有特征做归一化。3. 后…

复现论文

以原始LoRA论文为例 目录在本地复现 在本地复现 首先创建虚拟环境。虚拟环境之间,以及虚拟环境与全局环境之间是相互隔离的,所以我们在虚拟环境中安装包并不会影响到其他的环境打开Anaconda Prompt,输入conda create -n test python=3.12.9创建一个名为test,Python解释器版…

需求分析(第五组)

一、项目背景 随着我国《"十四五" 残疾人保障和发展规划》的深入推进,信息无障碍建设成为社会关注的焦点。根据中国残联统计数据,我国现有视障人士 1700 万,其中高校在读视障学生数量逐年递增。当前视障群体在校园场景中面临三大核心痛点:动态障碍物检测缺失(如…

20242816 2024-2025-2 《网络攻防实践》第5次作业

20242816 2024-2025-2 《网络攻防实践》第5次作业 1 实践内容 一、防火墙配置 任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试: (1)过滤ICMP数据包,使得主机不接收Ping包; (2)只允许特定IP地址,访问主机的某一…

Higress 开源 Remote MCP Server 托管方案,并将上线 MCP 市场

导读:MCP Server 的实施存在着诸多挑战,特别是在认证授权、服务可靠性和可观测性方面,Higress 作为 AI 原生的 API 网关,提供了完整的开源 MCP Server 托管解决方案,实现存量 API 到 MCP 的协议转换。即将上线的 MCP 市场,将大幅降低开发者构建 MCP Server 的时间和人力成…

智慧排水管网信息系统:数字化赋能城市治水新格局

2025年3月,一场暴雨突袭某城市主干道。但这一次,市政人员仅用10分钟便锁定了积水点,调度泵站精准排水,避免了交通瘫痪。这背后,正是智慧排水管网信息系统的“超能力”在发挥作用。这一系统如何重塑城市排水管理?本文将深度解析其建设框架与技术内核。 一、为什么需要智慧…

在Ubutnu22.04 显卡3090上安装cuda12.4

一、 检查驱动状态 nvidia-smi 如果没有以下输出就要安装一下驱动 在ubutnu22.04中安装3090使用以下命令sudo apt update && sudo apt upgrade && sudo apt install gcc makesudo apt install nvidia-driver-550驱动搞定就重启 sudo reboot二、安装cua 12.4 …

基于阿里云可观测产品构建企业级告警体系的通用路径与最佳实践

前言 1.1 日常生活中的告警 任何连续稳定运行的生产系统都离不开有效的监控与报警机制。通过监控,我们可以实时掌握系统和业务的运行状态;而报警则帮助我们及时发现并响应监控指标及业务中的异常情况。在日常生活中,我们也经常遇到各种各样的告警。例如,在驾驶传统机动车时…

No.4可视化大屏--vite+vue3 Flex布局和grid布局

一、Flex 弹性盒子布局(一维布局)<script setup></script><template> <div><div class="container"><div class="item">1</div><div class="item">2</div><div class="item&qu…