可持久化trie
thy_asdf
我也不知道说什么...
展开
-
bzoj3261: 最大异或和
题面:给定一个非负整数序列 {a},初始长度为 N。 有 M个操作,有以下两种操作类型: 1 、A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N+1。 2 、Q l r x:询问操作,你需要找到一个位置 p,满足 l a[p] xor a[p+1] xor ... xor a[N] xor x 最大,输出最大是多少。 思路:因为是xor,所以用原创 2015-06-23 20:32:52 · 857 阅读 · 0 评论 -
4103: [Thu Summer Camp 2015]异或运算
题面:给定长度为n的数列X={x1,x2,...,xn}和长度为m的数列Y={y1,y2,...,ym},令矩阵A中第i行第j列的值Aij=xi xor yj,每次询问给定矩形区域i∈[u,d],j∈[l,r],找出第k大的Aij。(n 思路:因为n比较小,所以维护第二维,然后暴力询问第一维。 #include #include #include using namespace std; c原创 2015-06-23 21:01:05 · 877 阅读 · 0 评论 -
bzoj3166: [Heoi2013]Alo
题目大意:给定一个数列,求一个区间[l,r],区间次大值与区间其他任意数的异或值最大,输出这个最大值; 思路:看到xor最大,就想到可持久化trie。然后我们先要预处理出对于每个数x,区间次大值为x的最大区间是什么。求区间左端点时,我们只要找到前面比x大的第二个数位置a,然后区间左端点就是a-1,右端点同理。于是我们可以用set搞搞,由于暴力也能过,所以就偷了一下懒...预处理完成后,我们只要对原创 2015-06-23 20:41:07 · 740 阅读 · 0 评论