码迷,mamicode.com
首页 >  
搜索关键字:可持久化trie树    ( 39个结果
[bzoj3261]最大异或和[可持久化trie树]
因为要求异或和最大,所以可以考虑从高位开始,向低位枚举尽可能接近~x的值,所以以二进制位为关键字,建立可持久化trie树,根据异或和的性质,XOR_SUM{i,j}=XOR_SUM{1,j} xor XOR_SUM{1,i-1},所以查询问题也可以解决了。 1 #include 2 #includ....
分类:其他好文   时间:2015-12-31 07:11:06    阅读次数:577
可持久化trie树
bzoj3261 设b[i]=a[1]^a[2]^...^a[i],所以题目所求可以转化为b[p-1]^b[n]^x,于是可持久化trie树lg。。。 fatheryoung的题解太美,在这里@一下http://www.cnblogs.com/y7070/p/5000471.html 1 #...
分类:其他好文   时间:2015-11-27 17:16:58    阅读次数:180
可持久化Trie树初步
可持久化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
bzoj-3261 最大异或和
题意: 给出一个长度为n的初始序列,和m次操作; A操作:在序列后面加入一个数; Q操作:给出一段区间[l,r]和一个数x,求区间中的p使p的后缀异或和与x的异或值最大; n,m 题解: 可持久化数据结构(2/4)进行中... ... 先做一个转化,因为是在序列后面加数,维护后缀和并不容易; 但是由于异或性质可以转化成前缀和的问题; 也就是在区间中选一个数,使其与另一...
分类:其他好文   时间:2015-07-25 18:35:02    阅读次数:160
[BZOJ3261&BZOJ3166]可持久化trie树及其应用
可持久化trie树 可持久化trie树现在想来是比较好理解的了,但却看了一个下午... 相当于对于每个状态建立一条链(或者说一棵trie),求解的时候只要让两个点按照相同的步子走然后看sum的大小关系即可。 tr[y].son[p xor 1]:=tr[x].son[p xor 1]; ...
分类:其他好文   时间:2015-04-09 21:29:58    阅读次数:150
BZOJ 2741【FOTILE模拟赛】L 分块+可持久化Trie树
题目大意给出一个序列,求[l, r]中的最大连续xor xor和。 强制在线思路先把整个序列分成n  √  \sqrt{n}块,预处理每一块的开头到每个数字的最大连续xor xor和。这个我们只需处理出前缀xor xor和,之后用可持久化Trie树就可以搞定。这样询问的右边就是整块的了。剩下左边的随便暴力一下就能过了。。CODE#define _CRT_SECURE_NO_WARNINGS#inc...
分类:其他好文   时间:2015-03-17 22:00:38    阅读次数:179
BZOJ 3166 HEOI2013 Alo 可持久化Trie树
题目大意:给定一个不重复的序列a,在a中任选一个区间,求区间内的次大值与区间内的任意一个其它数的最大的异或值 首先我们枚举次大值 对于一个次大值 它可能选择的另一个数的取值范围为(l,r) 其中l为这个数左侧第二个比它大的数 r为这个数右侧第二个比它大的数 在这个区间内的Trie树中贪心寻找最大值即可 这个区间怎么求呢?我们维护一棵平衡树 将数从大到小将下标加进平衡树 每加进一个下标 比它大...
分类:其他好文   时间:2014-10-21 13:55:20    阅读次数:185
BZOJ 2741 【FOTILE模拟赛】L 分块+可持久化Trie树
题目大意:给定一个序列,多次询问[l,r]中最大子序异或和 强制在线 一直RE的同学注意,本题的强制在线如果直接加会爆int导致调用数组下标为负 首先我们有一个转化 维护前缀异或和数组a[] 那么[l,r]中最大子序异或和就是a数组中[l-1,r]中任取两个数的最大异或值 然后分块处理 对于每块的第一个数a[i] 我们依次处理出对于所有的j>=i的[i,j]中的最大异或值 即s[i][j]=...
分类:其他好文   时间:2014-10-21 10:23:24    阅读次数:345
BZOJ 3261 最大异或和 可持久化Trie树
题目大意:给定一个序列,提供下列操作: 1.在数组结尾插入一个数 2.给定l,r,x,求一个l 首先我们可以维护前缀和 然后就是使x^sum[n]^sum[p-1]最大 x^sum[n]为定值,于是用Trie树贪心即可 考虑到l-1 每个区间[l,r]的Trie树为tree[r]-tree[l-1] 注意0要插入一个数字0,所以把-1作为空节点,然后把数组向前推进一位即可 #inc...
分类:其他好文   时间:2014-10-14 11:13:48    阅读次数:206
39条   上一页 1 2 3 4
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!