Description 如题,你需要维护这样的一个长度为 N 的数组,支持如下几种操作 在某个历史版本上修改某一个位置上的值 此外,每进行一次操作(对于操作2,即为生成一个完全一样的版本,不作任何改动),就会生成一个新的版本。版本编号即为当前操作的编号(从1开始编号,版本0表示初始状态数组) Inp ...
分类:
编程语言 时间:
2017-10-03 13:32:23
阅读次数:
240
原题目:洛谷P1972 题目描述 HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题 ...
分类:
其他好文 时间:
2017-09-27 21:45:48
阅读次数:
139
题解:第一眼瞄过去以为是个可持久化线段树(看来我还真菜),这题其实解法有很多,我就说说在考场上想到的CDQ分治。 首先这道题要按操作一步一步去做,而且操作还有时间的这个限制,一个操作i对另一操作j有贡献当且仅当该操作i在操作j前,且操作i的时间在操作j前,这是一个经典的二维偏序。我们把操作分成l,m ...
分类:
其他好文 时间:
2017-09-26 14:51:53
阅读次数:
210
考场上觉得是用可持久化线段树,但是在存储方面卡了很久,最后直接写了个暴力T_T 正确的姿势十分巧妙,建立可持久化权值线段树,第$i$棵线段树的叶节点$x$存储$x$在$A_{1\cdots i}$中出现的最后位置(如果没有出现,记为$0$) 那么当查询$mex(\{A_{l\cdots r}\})$ ...
分类:
其他好文 时间:
2017-09-24 16:13:20
阅读次数:
174
可持久化线段树初步理解(单点修改): 当需要同时保留修改前和修改后数据时,可能就要用到可持久化数据结构。考虑线段树的单点修改,实际上只改了一部分节点的值(logn级别),如果重建一棵树,需要nlogn级别的时间和空间。此时,我们可以使用可持久化线段树,将需要被修改的节点建成新的点,并且每次修改给予线 ...
分类:
其他好文 时间:
2017-09-22 23:56:01
阅读次数:
227
可持久化线段树模板题之一。 权当温习主席树模板 ...
分类:
其他好文 时间:
2017-09-12 15:59:40
阅读次数:
207
http://uoj.ac/problem/29 经过的点集一定是一个包含start的区间,为了经过这个区间内所有点,必须先到达一个区间端点,再到达另一个区间端点,剩余的步数则贪心选区间内最大价值的点。显然决策单调,于是可以分治,用可持久化线段树快速求出区间前k大数之和。 ...
分类:
其他好文 时间:
2017-09-11 11:31:18
阅读次数:
229
早上刷NOIP的题刷到有点烦就想学点新东西,然后.....一个早上就这样过去了QAQ。虽然主席树不是NOIP考点,但是...或许我能活到省选呢?(美好的幻想) 题目链接 题目的大意就是给定一个长度为n的区间,给出m个询问,每次询问一个区间[l,r]中第k小的树。 主席树(一种可持久化线段树)的入门题 ...
分类:
其他好文 时间:
2017-08-18 13:36:53
阅读次数:
143
Challenge 11 Challenge 11 查看 提交 统计 提问 查看 提交 统计 提问 总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 262144kB描述 给一个长为N的数列,有M次操作,每次操作是以下两种之一: (1)修改数列中的一个数 (2)求某次操作 ...
分类:
其他好文 时间:
2017-08-10 22:40:41
阅读次数:
179