人生第一道树套树。。(虽然暑假就写了= =) 这题是树状数组里面套个可持久化线段树。。。一开始想反了然后发现完全不会写TAT 一般的树状数组操作的时候是直接修改数组里的值的,套上可持久化线段树后就变成在相应的那颗线段树里面修改了。 修改操作就一个一个改,但查询第k大的时候要先把对应的线段树...
分类:
其他好文 时间:
2016-01-13 15:38:53
阅读次数:
200
把串倒过来插进trie上, 那么一个串的kpm串就是在以这个串最后一个为根的子树, 子树k大值的经典问题用dfs序+可持久化线段树就可以O(NlogN)解决------------------------------------------------------------------#inclu...
分类:
其他好文 时间:
2015-12-31 22:42:53
阅读次数:
272
将每k个数字求一个哈希值,存入可持久化线段树,直接查询即可 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 using namespace std;10 11 #defi...
分类:
其他好文 时间:
2015-12-31 07:09:42
阅读次数:
127
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3674用可持久化线段树维护可持久化数组,加上启发式合并,就成了可持久化并查集。。用root数组来记录当前是第x次操作之后的情景,这样我们就可以返回某次操作之后了。注意一直都是维护点的pos,画个图...
分类:
其他好文 时间:
2015-12-23 15:48:11
阅读次数:
207
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3207可持久化线段树。把每段数字都hash起来,然后把询问的数字段也hash起来。然后询问的时候做减法就可以了。#include#include#include#include#define re...
分类:
其他好文 时间:
2015-12-21 21:35:28
阅读次数:
156
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2588lca+可持久化线段树在树上建一棵可持久化线段树就可以了。#include#include#include#include#define rep(i,l,r) for (int i=l;i=...
分类:
其他好文 时间:
2015-12-21 15:47:44
阅读次数:
191
O(NK)暴力搞出所有子串的哈希值, 然后就对哈希值离散化建权值线段树, 就是主席树的经典做法了.总时间复杂度O(NK+(N+Q)logN)--------------------------------------------------------------------------#inclu...
分类:
其他好文 时间:
2015-12-20 11:37:20
阅读次数:
232
先把长度为k的字符串哈希掉,然后用可持久化线段树判断是否存在。。。可持久化线段树直接上模板,然而哈希。。。这里有三种哈希方法:①排个序,去个重,查找的时候二分 ②hash[i]=hash[i-1]*大质数+val[i] ③鬼畜查字符版哈希下面的代码是第一种,然而加...
分类:
其他好文 时间:
2015-11-27 19:51:54
阅读次数:
185
可持久化Trie树和可持久化线段树很像,依次插入信息,通过减法来进行历史版本查询。2015年11月12日 bzoj3261 最大异或和 我们需要计算a[p] xor a[p+1] xor ... xor a[N] xor x ,设 sum[i] 表示 a[1] xor a[2] xor .....
分类:
其他好文 时间:
2015-11-27 14:46:57
阅读次数:
144
可持久化线段树模板题。#include #include #include #include #include #include #include #include using namespace std;int n,q,tot,a[110000];int root[2100000],L...
分类:
其他好文 时间:
2015-11-26 10:56:34
阅读次数:
155