分块—暴力即正义
时间:2019-08-06
本文章向大家介绍分块—暴力即正义,主要包括分块—暴力即正义使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
分块即优美的暴力,通过将数组分成小块降低复杂度。分块可以维护线段树不好维护或根本维护不了的信息。线段树维护的信息必须具有可合并性,单调性等,而分块对信息性质的要求并没有那么苛刻。但在思想上,分块又与线段树十分类似,通过标记等操作来降低复杂度。
基本定义:
一个长度为N的序列,块的大小为block,从序列的第一个元素开始,每block个单位为一个块,若最后剩余的块不足block个,则自成一块。
每个块的大小(block)为。(或许不是最优,但一般满足大部分的题目要求)
块数(cnt)为 cnt=N/block+(N%block==0?:0:1)
位置 i 属于第 (i-1)/block+1 块,。
第 i 块的范围为 。
整块:操作区间完全覆盖的块。
边块:操作区间不完全覆盖的块。
基本操作:
对于区间操作时存在两种情况。(L所在块为bl,R所在块为br)
① 区间在同一个块内(bl=br):暴力重构。
② 区间不在同一个块内(bl>br):
左边块:,暴力重构。
右边块:,暴力重构。
中间整块:bl+1,bl+2 ,……,br-1,通过标记数组等进行操作。
区间修改,单点求和:
以区间修改,单点求和为例。
附:分块9题
原文地址:https://www.cnblogs.com/VividBinGo/p/11307991.html
- 如何利用ETW(Event Tracing for Windows)记录日志
- ASP.NET MVC以ValueProvider为核心的值提供系统: DictionaryValueProvider
- ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
- .NET Core的文件系统[2]:FileProvider是个什么东西?
- Python多线程怎样优雅的响应中断异常
- .NET Core的文件系统[3]:由PhysicalFileProvider构建的物理文件系统
- .NET Core的文件系统[4]:由EmbeddedFileProvider构建的内嵌(资源)文件系统
- 学习July博文总结——支持向量机(SVM)的深入理解(下)
- 在gridview和datagrid里设置列宽
- ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC
- .NET Core的文件系统[5]:扩展文件系统构建一个简易版“云盘”
- 全球15%工作将被自动化,中国1亿人将面临失业
- ASP.NET MVC的Model元数据提供机制的实现
- 清官难断家务事,人工智能却来介入家庭伦理大戏
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Go语言学习之 panic 和 recover
- Go语言学习之函数
- 【Spark Operator】webhook的分析
- 图解人脸识别算法facenet系列(一)
- Go 语言学习之 struct
- Go 语言学习之map
- 前端|利用手机号登录获取手机验证码
- Linux netstat命令结果分析
- setlistmap部分源码解析
- 使用 Log4j2 + SLF4j 打造日志系统的全方位教程
- 树莓派4的操作系统安装烧录、设置SSH、WIFI、VNC及备份
- C# dotnet 使用 startIndex 提升 IndexOf 的性能
- vscode .vue文件格式配置 使其与webstorm设置一致
- Go 语言学习之 slice
- koa2实现微信公众号关注自动回复消息