随笔分类 - 教程_数据结构
摘要:[TOC] 前置要求 带旋转的平衡树会改变祖先关系,这令可持久化变得困难。所以需要使用非旋的平衡树,如 "非旋treap" 。本文以非旋treap为例。 核心思想 可持久化的数据结构,其核心都是不改变历史的信息。当需要对信息进行修改的时候就新开一个节点,继承历史信息,然后再进行修改。 对于非旋tre
阅读全文
摘要:[TOC] 核心思想 主要的思想与treap是一样的。通过让二叉查找树同时满足堆(随机参数)的性质来防止深度过大。与普通treap不同的是非旋treap通过树的分裂与合并来实现这一点,而非旋转。 核心操作 Update 如果是要实现类似于 的功能,可以不用这一部分。本文以 "loj104" 为例,我
阅读全文
摘要:问题引入 "SDOI2011消耗战" 虚树 按照朴素的做法,就是对于每一个询问都跑一边DP。 $$ Dp[i] = Dp[ i ] + \min( Dp[Son],Cost[i,Son]) \,\,\,(Son不为关键点)\\ Dp[i] = Dp[ i ] + Cost[ i, Son ] \,\
阅读全文
摘要:前言 第$3$次尝试学习后缀自动机……下定决心不再背板子 参考资料: 洛谷博客(KesdiaelKen的雷蒻论坛) 2012年noi冬令营clj讲稿 **前置知识:**Trie树 简介 后缀自动机,顾名思义是能识别所有后缀的自动机。那么就要从两个方面入手:什么是自动机,以及怎样让自动机识别所有后缀。
阅读全文
摘要:[TOC] 前置知识 请先对树链剖分和Splay有所了解。LCT基于树链剖分,而本文的数据结构采用Splay。 Splay "戳这里" ,树链剖分 "戳这里" 介绍 注意: 请务必分清原树和我们操作的树。 以下图片参考 "Yang Zhe的论文" 假设原来有这么一棵树: 我们把它剖分成这样子: 红色
阅读全文
摘要:[TOC] 前言 Splay是名副其实的区间小能手。它会经常出现在一些有关区间的题上。而本蒟蒻只会Treap,感到分外难受,于是就有了这个教程。 引入 Splay首先是一颗二叉查找树。也就是说,对于任何一颗子树,左子树内所有的值均小于根,右子树内所有的值均大于根。也就是下图这样,数字代表值。 这样的
阅读全文
摘要:例题: "luoguP4735" 可持久化$Trie$嘛,就和可持久化线段树差不多。这篇文章只是借例题讲一讲如何截取一段时间的信息。 直接讲题大家就可理解。 题目大意 有两种操作,第一种在数组末尾加上一个数,第二种在$l\leqslant p\leqslant r$中求最大的$ a[p] \bigo
阅读全文
摘要:[TOC] 前言 树状数组由于其优越的常数,优越的代码量,更小的空间占用,所以常被使用。(实际上$ZKW$线段树常数也小,码量也小,功能更强大,但是较难理解~~所以哪位大佬教我一下~~)下面就较为详细地介绍树状数组。 然而本博客可能写得较难理解…… 树状数组原理 如果我们令一个数组$A[1]=a[1
阅读全文
摘要:"原题链接" 题目大意 给定一棵根为1,初始时所有节点值为0的树,进行以下三个操作: 将以某点为根的子树节点值都变为1 将某个节点及其祖先的值都变为0 询问某个节点的值 解题思路 这是一道裸的树链剖分题。下面详细地介绍一下树链剖分。 树链剖分预备知识: 线段树、DFS序 树链剖分想法|起源 首先,如
阅读全文

浙公网安备 33010602011771号