首页 > 其他分享 >整体二分学习笔记

整体二分学习笔记

时间:2024-07-19 20:18:34浏览次数:14  
标签:二分 询问 离线 mid 笔记 查询 学习 答案

整体二分一般适用于解决可以若干次二分解决的问题,当进行若干次二分的复杂度无法接受时,就可以使用整体二分。

可以使用整体二分解决的题目需要满足以下性质:
1.询问的答案具有可二分性
2.修改对判定答案的贡献互相独立,修改之间互不影响效果
3.修改如果对判定答案有贡献,则贡献为一确定的与判定标准无关的值
4.贡献满足交换律,结合律,具有可加性
5.题目允许使用离线算法
——许昊然《浅谈数据结构题几个非经典解法》

P3834 【模板】可持久化线段树 2

以静态区间第 \(k\) 小,讲解一下算法流程。

首先将所有询问离线,然后对答案的值域 \([1,Max_{val}]\) 进行分治(二分),设当前值域为 \([L,R]\),考虑对于一个区间 \([x,y]\) 查询第 \(k\) 小,若保证其答案在 \([L,R]\) 之间,但是 \([L,R]\) 之间小于 \(mid\) 的数的个数小于 \(k\),那么就说明此询问答案一定在 \([mid+1,R]\) 之间,显然这样可以根据一个 \(mid\) 值将所有询问分为两部分,将两部分的询问分别下传到 \([L,mid]\) 和 \([mid+1,R]\) 伤,我们递归不断重复此过程,直到值域 \(L=R\),此时该区间上挂着的询问答案即为 \(L\)。

如何查询\([L,R]\) 之间小于 \(mid\) 的数的个数?使用树状数组,每次将所有小于 \(mid\) 的数插入树状数组,查询前缀和做差即可。

总复杂度 \(O(n \log^2 n)\)。

P2617 Dynamic Rankings

动态区间第 \(k\) 小。

考虑将一次修改变为在原位置上减去原来的数,再加上一个新数,离线时将原有的数也视作加一个新数,将加减操作和查询操作离线到同一个数组里,整体二分时按照操作顺序边修改树状数组b边查询,这就保证的操作的时序性。其他同静态版本。

标签:二分,询问,离线,mid,笔记,查询,学习,答案
From: https://www.cnblogs.com/victoryang-not-found/p/18312296

相关文章

  • sklearn中的增量学习:特征提取的艺术
    sklearn中的增量学习:特征提取的艺术在机器学习领域,特征提取是构建有效模型的关键步骤。然而,并非所有数据集都适合一次性加载到内存中进行处理,尤其是在处理大规模数据集时。Scikit-learn(sklearn)提供了一些支持增量学习的模型,允许用户逐步地从数据中学习并提取特征。本文将详......
  • JAVA小白学习日记Day6
    1.List集合:把具有相同属性的东西放在一起,也可以是容器,把有关的东西都放进去。List:List是位于java.util下的一个接口,有序集合(也称为序列)。此界面的用户可以精确控制每个元素在列表中的插入位置。用户可以通过整数索引(列表中的位置)访问元素,并在列表中搜索元素。之前学过的容器......
  • java基础学习:序列化之 - kryo
    文章目录一、介绍二、特点三、使用方式四、应用场景五、注意事项一、介绍Kryo是一个快速且高效的Java序列化框架,它主要用于将Java对象转换为字节流以便存储或传输,同时能够将字节流反序列化为原始Java对象。Kryo相比Java自带的序列化机制具有更高的性能和更小的序列化......
  • java基础学习:序列化之 - ObjectMapper
    文章目录一、介绍二、主要功能三、使用方法官网:一、介绍ObjectMapper是Jackson库中的一个核心类,用于在Java对象和JSON数据之间进行转换。Jackson是一个流行的Java库,用于处理JSON数据。它提供了灵活的方式来序列化和反序列化Java对象,即将Java对象转换......
  • DHCP协议笔记
    DHCP----动态主机配置协议作用:用来为终端自动分配IP地址,并且对IP地址进行集中化管理的协议。应用层协议;传输层使用UDP协议进行数据封装,端口号67/68,其中68代表客户端;67代表服务端。DHCP主要使用一下这8种报文类型来实现其功能:1.DHCPDISCOVER---发现报文,用来寻找网络中的DHC......
  • 《白话机器学习的数学》第1章——开始二人之旅
    1.1对机器学习的兴趣1.2机器学习的重要性    1.无论是过去还是现在,计算机都特别擅长处理重复的任务。所以计算机能够比人类更高效地读取大量的数据、学习数据的特征并从中找出数据的模式。这样的任务也被称为机器学习或者模式识别,以前人们就有用计算机处理这种任......
  • 【windows11】笔记本电脑使用PE工具重装系统超详细步骤及常见问题
    因为一些原因昨天重装了一次系统,本来以为是一次简单快捷的重装,但是我们在重装系统的过程中遇到了一些问题,导致重装之后很多出现了一系列小毛病,一度以为自己没装成功,多次重装等烦恼。下面为大家附上部分教程及一些注意事项,相信大家参考别的教程配合可以很顺利地完成。第五步之......
  • 高速接口自用笔记:GT基础(三):IP配置
    参考:https://mp.weixin.qq.com/s/vsWvH7DS9b0ZBE3NM-e88A配置GTSelection界面首先进入GTSelection配置界面,这个界面主要关注红框部分。从前文对GT的时钟介绍可知,一个GTbank只有一个QPLL,红框部分表示把QPLL的代码放在IP外面实现,这样做的好处在于后续方便扩展收发器通道,便于......
  • 【笔记】从0开始的sql注入漏洞学习
    【笔记】从0开始的sql注入漏洞学习SQL数据库操作基础第一部分:MYSQL(MariaDB)基础操作1.连接数据库:mysql-uroot-p-u 输入登录用户名-p 输入密码(这个没有密码)2.显示系统中所有数据库的名称showdatabases;3.新建数据库studentcreatedatabasestudent;使用以下命令......
  • Vue3的学习---2
    2.Vue基本语法2.1文本渲染指令v-html和v-textv-html:将数据当作html代码渲染到页面上v-text:将数据当作纯文本渲染到页面上<body><divid="app"><!--v-html和v-text指令的作用是将数据渲染到HTML元素或文本节点中,避免出现{{num}}--><pv-html="......