题解:
首先我们处理出来sum[0,n]sum[0,n]作为异或前缀和,然后答案就不再是[l,r][l,r]中间某段区间的异或和,而转化成求了[l?1,r][l-1,r]中任意两点异或和的最大值。
然后我们分块处理出fi,jf_{i,j}表示 [第i块的开头,j?1][第i块的开头,j-1] 这段区间中任取一点和点jj异或和的最大值,而用gi,jg_{i,j}做个类似前缀和的操作,记录第ii块...
分类:
其他好文 时间:
2015-03-20 22:07:44
阅读次数:
223
题目链接:Codeforces 484E Sign on Fence
题目大意:给定给一个序列,每个位置有一个值,表示高度,现在有若干查询,每次查询l,r,w,表示在区间l,r中,
连续最长长度大于w的最大高度为多少。
解题思路:可持久化线段树维护区间合并,前端时间碰到一题可持久化字典树,就去查了一下相关论文,大概知道了是
什么东西。
将高度按照从大到小的顺序排序...
分类:
其他好文 时间:
2014-11-07 01:00:01
阅读次数:
343
题目链接:hdu 4757 Tree
题目大意:给定一棵树,每个节点有一个值,现在有Q次询问,每次询问u到v路径上节点值与w亦或值的最大值。
解题思路:刚开始以为是树链剖分,其实树链剖分只是用来求LCA(可以不用树链剖分)。
可持久化字典树,在每次插入的同时,不修改原先的节点,而是对所有修改的节点复制一个新的节点,并且在新的节点
上做操作,这样做的目的是能够获取某次修改...
分类:
其他好文 时间:
2014-10-30 19:12:51
阅读次数:
393