随笔分类 -  教程_数据结构

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