博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[整体二分]【学习笔记】【更新中】
阅读量:5360 次
发布时间:2019-06-15

本文共 659 字,大约阅读时间需要 2 分钟。

先小结一下吧

主要为个人理解


 

整体二分

理解

$zyz:$整体二分是在权值上进行$CDQ$分治

我觉得更像是说$:$整体二分是在答案上进行$CDQ$分治

整体二分是二分答案在数据结构题上的扩展

因为数据结构题二分的答案通常是第几个操作之后,需要进行一些操作(预处理)之后才能判断,所以每次询问二分还不如从前往后暴力找

整体二分可以解决这样的问题

核心就是维护一个$cur$数组保存当前的影响,分治到$[l,r]$时只需要计算$[l,mid]$的影响再与$cur$里的合并就好了

这样分治里的操作就只与当前处理序列的长度有关,要不然复杂度不对

将询问集合二分到底层

 

一般过程:

首先询问的答案要可以二分

然后影响因子(如修改操作)的贡献要具有可加性

$Sol(l,r,S)\ l,r$是当前权值(答案)区间,$S$是当前询问的集合,$S$中询问的答案都在$[l,r]$中

在$[l,mid]$中的影响因子生效(对答案贡献),与$cur$合并后进行判断将询问集合分成$[l,mid]\ [mid+1,r]$递归分治

实现上集合保存询问的编号就可以了

 

复杂度

同$CDQ$分治

 

其他

整体二分和二分答案一样将原始问题转化为了判定问题,只不过是一次把所有询问二分答案,然后用分治的手段处理

很像加了一维权值(答案)的限制

所以偏序问题中那些手段都可以用

比如一系列修改操作和查询操作,整体二分了权值,时间这一维只要排序就行了

 

转载于:https://www.cnblogs.com/candy99/p/6464068.html

你可能感兴趣的文章
String 字符串详解 / 常用API
查看>>
懒加载树[tree]、点击已经加载完成的树[tree]节点,再次加载该节点下一级的所有子节点...
查看>>
[LeetCode]Unique Binary Search Trees
查看>>
CURL
查看>>
让python输出不自行换行的方法
查看>>
用servlet进行用户名和密码校验
查看>>
scala中伴生对象和伴生类
查看>>
linux连接远程桌面
查看>>
Baidu set to lose leading role in digital advertising _china daily
查看>>
第十七章 Velocity优化实践(待续)
查看>>
iOS xcode6 添加.pch文件
查看>>
周四新生训练 Bad random numbers
查看>>
数组去重
查看>>
解决MyEclipse中install new software问题
查看>>
win7 dos命令窗口内容显示不全解决办法--将命令执行结果输出到一个文件中
查看>>
Java多线程-线程安全
查看>>
springboot11-01-security入门
查看>>
模拟信号和数字信号
查看>>
sqlalchemy——多表操作
查看>>
国行ME860升级2.3.4
查看>>