随笔分类 -  可持久化数据结构

可持久化线段树,平衡树,Trie树,并查集……
摘要:4556: [Tjoi2016&Heoi2016]字符串 Description 佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物。生日礼物放在一个神奇的箱子中。箱子外边写了 一个长为n的字符串s,和m个问题。佳媛姐姐必须正确回答这m个问题,才能打开箱子拿到礼物,升职加薪,出任CE O,嫁给 阅读全文
posted @ 2017-10-01 19:48 LadyLex 阅读(413) 评论(0) 推荐(0) 编辑
摘要:4103: [Thu Summer Camp 2015]异或运算 Description 给定长度为n的数列X={x1,x2,...,xn}和长度为m的数列Y={y1,y2,...,ym},令矩阵A中第i行第j列的值Aij=xi xor yj,每次询问给定矩形区域i∈[u,d],j∈[l,r],找出 阅读全文
posted @ 2017-08-03 21:23 LadyLex 阅读(311) 评论(0) 推荐(0) 编辑
摘要:3166: [Heoi2013]Alo Time Limit: 20 Sec Memory Limit: 256 MB DescriptionWelcome to ALO ( Arithmetic and Logistic Online)。这是一个VR MMORPG ,如名字所见,到处充满了数学的谜 阅读全文
posted @ 2017-08-03 21:02 LadyLex 阅读(427) 评论(0) 推荐(0) 编辑
摘要:这一次,我们来了解普通Trie树的变种:0-1Trie以及在其基础上产生的可持久化Trie(其实,普通的Trie也可以可持久化,只是不太常见) 先简单介绍一下0-1Trie:一个0-1Trie节点只有两个子节点,分别代表0和1;从根节点开始,第一层代表限制的最高位,依次往下直到最底层,代表二进制第0 阅读全文
posted @ 2017-08-03 20:42 LadyLex 阅读(1244) 评论(0) 推荐(3) 编辑
摘要:今天我们也继续精神满满的可持久化——这次我带来的是可持久化平衡树的讲解。 可持久化平衡树,顾名思义,和主席树一样支持历史版本的查询。 可持久化平衡树都可以用什么实现呢?朴素的二叉排序树,或者无旋Treap,或者替罪羊。其他的平衡树都不能实现可持久化 ……好吧,我们直接把二叉排序树扔掉。下面我们来想一 阅读全文
posted @ 2017-08-03 13:46 LadyLex 阅读(2379) 评论(1) 推荐(2) 编辑
摘要:3772: 精神污染 Description 兵库县位于日本列岛的中央位置,北临日本海,南面濑户内海直通太平洋,中央部位是森林和山地,与拥有关西机场的大阪府比邻而居,是关西地区面积最大的县,是集经济和文化于一体的一大地区,是日本西部门户,海陆空交通设施发达。濑户内海沿岸气候温暖,多晴天,有日本少见的 阅读全文
posted @ 2017-08-03 13:07 LadyLex 阅读(407) 评论(0) 推荐(0) 编辑
摘要:最近跑来打数据结构,于是我决定搞一发可持久化,然后发现……一发不可收啊…… 对于可持久化数据结构,其最大的特征是“历史版本查询”,即可以回到某一次修改之前的状态,并继续操作;而这种“历史版本查询”会衍生出其他一些强大的操作。 今天,我们主要讲解可持久化线段树。其实,它的另外一个名字“主席树”似乎更加 阅读全文
posted @ 2017-08-02 20:21 LadyLex 阅读(831) 评论(0) 推荐(4) 编辑
摘要:这次我们来搞一个很新奇的知识点:克鲁斯卡尔重构树。它也是一种图,是克鲁斯卡尔算法求最小生成树的升级版首先看下面一个问题:BZOJ3545 Peaks。 在Bytemountains有N座山峰,每座山峰有他的高度h_i。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走 阅读全文
posted @ 2017-08-02 20:11 LadyLex 阅读(2675) 评论(1) 推荐(4) 编辑
摘要:3123: [Sdoi2013]森林 Description Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号。保证1≤testcase≤20。 第二行包含三个整数N,M,T,分别表示节点数、初始边数、操作数。第三行包含N个非负整数表示 N个节点上的权值。 接下来 M行 阅读全文
posted @ 2017-08-02 20:05 LadyLex 阅读(785) 评论(0) 推荐(0) 编辑
摘要:257. 动态排名系统 时间限制:5 s 内存限制:512 MB [问题描述]给定一个长度为N的已知序列A[i](1<=i<=N),要求维护这个序列,能够支持以下两种操作:1、查询A[i],A[i+1],A[i+2],...,A[j](1<=i<=j<=N)中,升序排列后排名第k的数。2、修改A[i 阅读全文
posted @ 2017-08-02 19:14 LadyLex 阅读(669) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示