等这场战争结束之后

news/2025/2/6 21:10:45/文章来源:https://www.cnblogs.com/BYR-KKK/p/18701696

建操作树,此时需要支持加边删边查询一个连通块的 kth。

加边删边用两个集合做启发式操作很好维护,考虑查一个连通块的 kth,通常的套路是二分,于是这道题如果加边时启发式合并、删边时启发式分裂、查询时二分,看上去是一个很自然的想法,但是复杂度并不对。令 \(nm\) 同阶,先用 \(\dfrac{m}{2}\) 合并出两个大小为 \(\dfrac{n}{4}\) 的集合,剩下 \(\dfrac{m}{2}\) 次操作一直反复对这两个集合合并、分裂。

这道题看上去很难带启发式分裂这种操作,考虑用可持久化并查集维护加边删边,但是这样就没法二分了,考虑我们刚才的启发式合并是在干什么,实际上就是维护两个桶然后对其做合并,这两个桶中的信息并非都有用,经典套路,对值域分块,求出 kth 在哪一块以后暴力枚举,因此我们在并查集上维护 \(O(\dfrac{n}{B})\) 个块中的出现次数(离散化),找到在哪一个块后暴力检查块中的数和 \(x\) 是否在同一个中,这样的复杂度是 \(O(mB\log n+\dfrac{nm}{B})\),瞎取一个 \(O(\sqrt{n})\) 看上去无法通过,可以二分一个块长,理论上取 \(\sqrt{\frac{nm}{n+m\log n}}\),时间复杂度 \(O(m\sqrt{m\log n})\),看上去可以通过,不过空间是 \(O(n\sqrt{n})\),无法通过。可以对于每个块分开处理,这样空间就是线性的了,但是注意此时需要预处理并查集合并时的根。线性做法不过就是将暴力检查是否在同一个块变成随机求,期望 \(O(m\sqrt{n})\)

代码明天补,要是没补我就是傻逼。

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

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

相关文章

IDEA 接入 DeepSeek,太酷了!

你好,我是 Guide。前两天,我发文提到 DeepSeek 的回答推荐了我的资料 《JavaGuide 面试突击版》(PDF):DeepSeek 的这波回答我给满分!。 这篇文章简单介绍一下如何在常用的 IDE 中接入 DeepSeek,这里以 Java 开发最常用的 IDEA 为例。 目前,IDEA 中接入 DeepSeek,可以借…

社媒风控下的生存法则:云手机如何为Facebook、X(Twitter)账号安全护航

社媒风控下的生存法则:云手机如何为Facebook、X(Twitter)账号安全护航 在社交媒体平台(如Facebook、X/Twitter)风控日益严格的背景下,账号安全成为运营者的核心痛点。平台通过检测设备指纹、IP地址、SIM卡信息等参数,对批量操作、异常登录或虚拟环境进行封号限制。云手机…

还在为标准“头秃”?数字化转型秘籍来了!

数字化浪潮席卷而来,企业都想“乘风破浪”,可标准化管理这块“基石”要是没打牢,小心“翻船”哦!别担心,我们带着标准制修订信息管理系统来拯救你啦!这可不是一般的系统,它能让你的标准化工作从“石器时代”直接跃迁到“赛博朋克”!😫 标准化管理的“老大难”:你中了…

[megatron代码阅读] 2. TP和PP实现

megatron 源码阅读第二篇, 看了TP和PP的对应实现训练并行实现 TensorParallel 张量并行代码路径, 代码路径: megatron/core/tensor_parallel 主要包含Linear / VocabEmbedding / cross_entropy 三部分. Linear 参数初始化 如果是从checkpoint热启, perform_initialization需要打…

2024.2.6鲜花

初探牛顿迭代?推歌 《以恋结缘》 诚、意地の悪い神の所业か? 奇迹?縁?袂触合う不思议 花ひとひら揺れて 不意に宿ってた うなじ解いてく春风 戯れはそこそこに 恋手ほどきしてくだしゃんせ 汤気にほんのり頬染て 夜风に愿ふ …いざ!!蝶と舞ひ花となりて 衣を乱して祓いま…

megatron 2. TP和PP实现

megatron 源码阅读第二篇, 看了TP和PP的对应实现训练并行实现 TensorParallel 张量并行代码路径, 代码路径: megatron/core/tensor_parallel 主要包含Linear / VocabEmbedding / cross_entropy 三部分. Linear 参数初始化 如果是从checkpoint热启, perform_initialization需要打…

【Azure Policy】当Azure策略组中存在多个修正任务时候时的批量处理办法

问题描述 在分配一组策略中包含了很多修正任务时候,从门户上,只能选择一个修正任务执行。 如下图:是否有好的办法,执行全部的修正任务呢?问题解答 从Azure门户的设计来看,只能选择一个修正任务是设计使然。如果想批量执行全部的修正任务,需要使用PowerShell脚本来循环执…

Kotlin空安全

前言 访问空引用的成员变量就会导致空指针异常,在Java中被称作NullPointerException,简称NPE,Kotlin中NPE产生的原因只可能是以下几种:显式调用 throw NullPointerException()使用了!!操作符数据在初始化时不一致,例如:传递一个在构造函数中出现的未初始化的 this 并用于…

Kotlin控制流程

条件与循环 if表达式 Kotlin中的if与Java中的if大致上都差不多,但是Kotlin中没有三元运算符(A ? B : C),可以用if表达式作为代替,例如: Java int a = int a = System.currentTimeMillis() % 2 == 1L ? 1 : 0; Kotlin val a = if (System.currentTimeMillis() % 2 == 1L…

第一次用Markdown

标题 标题2 标题3 标题4 字体 字体 字体姓名 性别 年龄张三 男 20![das]() baidu

【测试基础】web3.0介绍

web3.0介绍 Web3.0也被称为下一代互联网,是对当前互联网(Web2.0)的演进和升级。其目标是实现一个更加去中心化、安全、用户拥有数据主权且具有更好互操作性的互联网环境。Web3.0的核心技术包括区块链、智能合约和加密货币等。 web2.0与web3.0区别 Web2.0和Web3.0的主要区别在…

区块链原理、技术与实践

区块链介绍 区块链是一种分布式账本技术,允许多个参与者共同维护一个不断增长的数据记录列表,每个区块包含一系列交易记录,并通过密码学方法与前一个区块链接起来,形成一个不可篡改和不可逆的链条。 这种基于共识的机制使得区块链具有高度的安全性和透明性。 区块链与传统W…