QDEZ集训笔记【更新中】

自己的理解

【2016-12-31】

【主席树】

http://www.cnblogs.com/candy99/p/6160704.html

就是可持久化线段树,对于每个版本建立一颗线段树,可以查询历史版本

为了节省内存和时间直接使用历史版本的形态,把修改的地方沿途新开节点,其他地方继承历史版本

主席树就是前缀和套线段树,每个前缀和建立一颗线段树,继承上一个历史版本,只是单点修改

区间修改也一样,所有区间修改到的点都要新开节点 标记下放时也要新开

总结:就是把各种操作修改到(包括因为下方标记而修改)的节点新开节点,写法上就是多了新开节点而已,其他一样

主席树的线段树是值域线段树,线段树的形态固定并且维护的信息是出现次数所以是可减的,那么主席树做差就得到了一个区间的值域线段树,可以在线段树上二分求kth

【树链剖分】

http://www.cnblogs.com/candy99/p/6172163.html

复杂度:每走一个轻边,size至少一倍(可以想想完全二叉树,那个正好一倍),最多走logn次

完全二叉树才是logn,然后这样树高太小卡不住暴力,所以认为树剖的常数很小

链剖序同时是dfs序,但要注意重链先行

一个小性质:除了最后的链,每个区间都是重链的一个前缀

题目

后缀数组

题目

时间: 2024-10-13 14:52:38

QDEZ集训笔记【更新中】的相关文章

Android V7包学习笔记更新中.....

关于V4 V7 V13 VX包介绍转自这里 1, Android Support V4, V7, V13是什么? 本质上就是三个java library. 2, 为什么要有support库? 如果在低版本Android平台上开发一个应用程序,而应用程序又想使用高版本才拥有的功能,就需要使用Support库. 3, 三个Support 库的区别和作用是什么? Android Support v4 是最早(2011年4月份)实现的库.用在Android1.6 (API lever 4)或者更高版本之

课堂笔记更新中...

1.编码GBK GB2312 被unicode兼容 unicode是万国码 而 utf-8是对万国码的压缩和优化 utf-8的汉字无法正常显示在unicode上(乱码)print 后加U表示用unicode编码 notepad自用utf-8编码 生成的代码编码形式跟CMD不符合2.制表符TAB!=四个空格 官方建议四个空格 制表符在不同系统中不一样.将制表符设置成四个空格.3.if 逻辑判断有多个elif时 条件只能符合一个. print("abc","qwe")

linux网络编程学习笔记之二 -----错误异常处理和各种碎碎(更新中)

errno 在unix系统中对大部分系统调用非正常返回时,通常返回值为-1,并设置全局变量errno(errno.h),如socket(), bind(), accept(), listen().erron存放一个正整数来保存上次出错的错误值. 对线程而言,每个线程都有专用的errno变量,不必考虑同步问题. strerror converts to English (Note: use strerror_r for thread safety) perror is simplified str

汇编代码笔记 动态更新中

汇编考完了,悲剧的93分,,,,,以后的汇编就用的少了,凡是用到都来这里做点代码笔记: 一.错误总结: 1.程序最后END +起始标号,否则U的时候需要自己手动找起始位置而且有可能程序翻译指令错误 2.对内存单元进行操作的时候,注意类型的指定,比如inc [si]必然是错的因为没有类型,还有处理数据计数器si注意加一 3.凡是用到[si]这种形式的,都注意声明BYTEPTR,WORD PTR 4.同3的错误,如果声明了COUNTDB 3,那么mov cx,count就是不对的,因为类型不匹配 5

Samurai Framework 学习笔记--samurai中的宏魔法(待更新)

Samurai Framework 学习笔记–samurai中的宏魔法 文件 Samurai_Predefine.h Samurai里的一些预设宏 // 这3个宏是在定义属性 @prop_assign( NSInteger, page IN)的时候标记这个数据流的方向时用的. #define IN #define OUT #define INOUT // 函数属性限定符: __attribute__((unused)) 这个限定符属性禁止编译器在未引用该函数时生成警告 // 这里先用__unus

linux学习资源(不断更新中)

1.http://www.kernel.org,linux内核(源码)下载 2.http://www.oldlinux.org/index_cn.html,<Linux内核0.11(0.95)完全注释> 3.书籍列表: 101-深入理解Linux内核(第三版 英文版)-1030页.pdf  102-深入分析Linux_内核源代码--550页.pdf  103-Linux下的C编程-438页.pdf  104-linux从入门到精通-372页.pdf  105-Linux菜鸟专用资料-595页.

Android 系统中,那些能大幅提高工作效率的 API 汇总(持续更新中...)

前言 "条条大路通罗马."工作中,实现某个需求的方式往往不是唯一的,这些不同实现方式不仅表现在代码质量上,还影响着我们的工作效率.就像,在 Android 系统中,总有那么一些鲜为人知的 API 能够减少我们很多零碎的工作量.于是,就想凭着一些经验,整理一些常用的,找个地方归纳总结,也供日后翻阅. getResources().getIdentifier(String name, String defType, String defPackage) 根据资源名称获取资源 id.正常情况

痞子衡嵌入式:史上最强i.MX RT学习资源汇总(持续更新中...)

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MX RT学习资源. 类别 资源 简介 官方汇总 i.MXRT产品主页 恩智浦官方i.MXRT产品主页,最权威的资料都在这里,参考手册/数据手册,官方EVK板设计文件,各种应用笔记,各种参考设计方案.培训视频.软件SDK开发包,官方IDE/CFG工具,第三方软件支持等应有尽有,如果这上面文档你都能全部仔细看一遍,软件都能下载用起来,不用怀疑,你就是资深专家了. 其中痞子衡特别推荐你把所有应用笔记都看一遍,这些笔记凝结了所有恩智浦

AspectJ学习笔记2-Eclipse中AspectJ插件AJDT的正确安装方法

接着之前一篇日志.这个事情也挺无语的,简单记录一下. 在这里:http://www.eclipse.org/ajdt/ 可以下载最新的Eclipse Plugin,下载解压之后,一般来说,直接把解压后文件夹下的features和plugins放到Eclipse的文件夹下就行了.不过我这样做以后,启动Eclipse,发现没什么作用.才参考网上有人介绍的第二种方法,也就是Help--Install New Software--Add--Local这种方式选择刚才的解压文件夹,但是这样操作以后会报像下