阅读《记录一类分治方法》笔记

news/2025/10/16 20:04:01/文章来源:https://www.cnblogs.com/wingheart/p/19146492

阅读《记录一类分治方法》笔记

题一

\(n\) 个点的无向图,边有边权。\(q\) 次操作,每次操作是添加/删除一条边、修改一条边的边权、查询最小生成树这四种之一。

前言

其实只看了题一,后面都还没看呢。

看到这个感觉和 P7457 [CERC2018] The Bridge on the River Kawaii 很像,感觉很牛。想看看这个做法能不能推广到这题。

然后脑子有些混乱,觉得很能推广啊,想写一发代码。然后代码写完发现 P7457 是询问两点连通性。这和最小生成树不一样。很搞笑了。

所以只能再开一篇把写的东西搬过来了。

思路

原文对我来讲有些简略,这里会讲的更详细一点。

考虑我们有 \(O(m+q)\) 条边,每条边在一个时间区间内有权值 \(w_i\),在其他时刻权值为 \(inf\),求最小生成树。离线。

设边的全集是 \(E\),存在一些时刻权值是 \(inf\) 的边集是 \(Q\)

\(Q\) 里所有边的权值设为 \(-inf\),跑一遍最小生成树,选上的 \(E\) 里面的边无论任何情况都是必选的。所有可以缩掉这些必选边。这样我们的点数变成了 \(O(|Q|)\)

\(Q\) 里所有边的权值设为 \(inf\),跑一遍最小生成树,没有选上的 \(E\) 里面的边无论任何情况都不会被选择。所以可以删掉这些没用的边。这样我们的边数又变成 \(O(|Q|)\) 了。

对于当前分治区间,集合 \(E\) 定义为所有时间区间包含了整个分治区间的边。\(Q\) 定义为所有时间区间没有包含整个分治区间的边。

按照上面的方法,我们可以把点数和边数都变成 \(O(|Q|)\)

\(Q\) 有多少条边?因为每次操作只会影响一条边,并确定这条边的时间区间的左/右端点。所以存在一个端点在当前分治区间内的边的数量,关于分治区间长度线性,即 \(O(len)\)

既然我们保证了分治区间的点数和边数,那么每个分治区间把已经可以确定的点和边确定,有效的点和边留下即可。

总时间复杂度 \(O(q \log q)\)(并查集复杂度当常数看了)。

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

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

相关文章

CF2140E2

给定 \(n(1 \le n\le 20), m(1 \le m \le 10^6)\) 和一些 \(p_i\)。有 \(n\) 堆石子,每堆石子有 \(1 \sim m\) 个。两个人进行博弈,每次每个人可以取走第 \(p_i\) 堆石子(\(i\) 任选),然后剩下的石堆重新编号,直…

Codeforces 380E Sereja and Dividing 题解 [ 紫 ] [ 线段树 ] [ 贪心 ] [ 数学 ]

Sereja and Dividing:一年前的模拟赛就能秒这个 *2600 了,可我现在怎么还这么菜 /ll/ll/ll。 先考虑当杯子的集合固定时如何选择,显然一个杯子不会被选第二次,并且杯子从大到小选一定是最优的。证明只需要列出最后…

JPA教程

一 什么是 Spring Data JPA Spring Data JPA 是 Spring 框架的一个子项目,它简化了基于 JPA (Java Persistence API) 的数据访问层开发。它通过提供一套抽象接口,减少了开发者编写重复性的数据访问代码的工作量,使开…

实验指导-基于阿里云Serverless应用引l擎SAE的服务部署迀移 - 详解

实验指导-基于阿里云Serverless应用引l擎SAE的服务部署迀移 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

夜莺监控设计思考(二)边缘机房架构思考

这将是一个系列,讲解 夜莺监控 的设计思考,可以理解为原理+最佳实践+产品设计时的折中取舍。 本系列其他文章:夜莺监控设计思考(一)项目定位、组件思考、单进程多进程选择、高可用设计下面开始第2篇。 上一篇我们…

搜维尔科技:具有人手级别抓握和操纵能力的灵巧手

应用 仿人机器人研究;涉及工具使用、双手操作的任务;需要手动操作的过程,如物体组装和连接器锁紧! 具有人手级别抓握和操纵能力的灵巧手 5指20自由度(DOF)Gripper与人手一样通用,可广泛应用。 专为高级人形机器人研…

v-model 的实现原理

vue 中 v-model 可以实现数据的双向绑定,但是为什么这个指令就可以实现数据的双向绑定呢? 其实 v-model 是 vue 的一个语法糖。即利用 v-model 绑定数据后,既绑定了数据,又添加了一个 input 事件监听。 实现原理:…

防塔游戏单机 王国保卫战全集下载 1~5部全系列MOD DLC修改版 安卓+ios+PC电脑版

王国保卫战全集下载 1~5部全系列MOD DLC修改版 安卓+ios+PC电脑版 《王国保卫战》中玩家需在地图上建造防御塔来抵御兽人、巨魔、恶魔等敌人的进攻。游戏设有森林、山野、荒地等多种战斗场景…

详细介绍:【译】Visual Studio 中针对 .NET MAUI 的 XAML 实时预览功能的增强

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

德州东站换乘攻略(仅供参考)

注意(免责声明):本文仅在极限情况下参考。本文仅给出参考,若发生任何与此有关的事情,本文作者不承担任何责任。 作者所携带的行李为 \(26\) 英寸拉杆箱,重约 \(9 kg\)。测试时作者为高中学生。德州东站换乘攻略:…

第十六篇

今天是10月16日今天上了数据结构,进行体测。

Date 2025.10.6

在 Print 之前 这场比赛打的不好,T1 没判边界挂了 \(50 pts\),T2、T3 都只打了 \(60 pts\),总的来说不算太好。 A - 玩具P.S. \(n \le 100000 \quad t \le 100000 \quad w_{i} \le 100 \quad k_{i} \le 100\) 说真的…

macOS 双开/多开微信WeChat完整教程(支持 4.X 及以上版本) - 实践

macOS 双开/多开微信WeChat完整教程(支持 4.X 及以上版本) - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…

docker镜像层和容器层

docker镜像层和容器层非常好 👍 你要求的「完整 Docker 镜像层与容器层底层机制文档(含算法与举例、无省略版)」下面是一个系统化、结构化、含路径、算法公式、举例的全量说明。 这个版本涵盖:1~8 全部内容 + 算法…

快捷运用电脑的方式(不使用鼠标)

Ctrl+C:复制; Ctrl+V:粘贴; Ctrl+A:全选; Ctrl+X:剪切; Ctrl+Z:撤销; Ctrl+S:保存; Alt+F4:关闭; Shift+Del:永久删除; Windows+R:运行; Windows+E:打开我的电脑; Ctrl+Shift+Esc:打开任务管理器;

2025.10.16总结 - A

今天体测,挺累的,不过还可以

初识pytorch:更新网络参数的反向传播、损失函数和优化器

目录反向传播、损失函数和优化器这三者之间的联系损失函数(Loss Function),模型优化的“指南针”反向传播(Backpropagation):参数优化的 “路径规划”优化器:参数优化的执行者 ————————————————…

Composition API 与 React Hook 很像,区别是什么?

从 React Hook 的实现角度看,React Hook 是根据 useState 调用的顺序来确定下一次重渲染时的 state 是来源于哪个 useState,所以出现了以下限制:不能在循环、条件、嵌套函数中调用 Hook; 必须确保总是在你的 React…

题解:CF1483E Vabank

题意:交互题。现在有个隐藏的数 \(M\),你可以询问 \(X\) 和 \(M\) 的大小关系,如果 \(X\le M\) 则你会增加 \(X\) 块钱,如果 \(X>M\) 你需要支付 \(X\) 块钱,如果你付不起就挂了。初始有 \(1\) 块钱,要找出 \…

20251016 正睿二十连测

正睿二十连测 C 最后的 DP 比较神奇,花了至少 \(1h\) 才搞懂。 给定 \(n, k\),问有多少长度为 \(n\) 的排序能在至多 \(k\) 次 “双向冒泡排序” 后变得有序。一个经典的套路:对于每个 \(x\),将 \(\le x\) 的数看成…