Nikitosh 和异或(trie树)】的更多相关文章

题目: #10051. 「一本通 2.3 例 3」Nikitosh 和异或 解析: 首先我们知道一个性质\(x\oplus x=0\) 我们要求\[\bigoplus_{i = l}^ra_i\]的话,相当于求\[(\bigoplus_{i = 1}^la_i)\oplus (\bigoplus_{i = 1}^ra_i)\] 所以我们维护一个异或前缀和\(sum_i\) 我们用\(l_i\)表示从左往右到第\(i\)位时的区间最大异或和 \(r_i\)表示从右往左到第\(i\)位时的区间最大异…
[参考博客]: LOJ#10051」「一本通 2.3 例 3」Nikitosh 和异或(Trie [题目链接]: https://loj.ac/problem/10051 [题意]: 找出两个不相交区间的异或值相加. [题解]: 这个题目还是挺有趣的,不是单纯地套模板了. 这个题目类似于 最大字段和问题. 首先我们可以预处理出所有的异或前缀和. 区间的异或值,就是两端点异或前缀和的异或值. 还需要处理出 L[t] = max{ Xor[i,j] }  1<= i,j <= t R[t] = m…
/* 本程序说明: [编程题] 异或 时间限制:1秒 空间限制:32768K 给定整数m以及n个数字A1,A2,..An,将数列A中所有元素两两异或,共能得到n(n-1)/2个结果,请求出这些结果中大于m的有多少个. 输入描述: 第一行包含两个整数n,m. 第二行给出n个整数A1,A2,...,An. 数据范围 对于30%的数据,1 <= n, m <= 1000 对于100%的数据,1 <= n, m, Ai <= 10^5 输出描述: 输出仅包括一行,即所求的答案 输入例子1:…
题目链接: [十二省联考2019]异或粽子 求前$k$大异或区间,可以发现$k$比较小,我们考虑找出每个区间. 为了快速得到一个区间的异或和,将原序列做前缀异或和. 对于每个点作为右端点时,我们维护出与他异或起来最大的左端点并将这组信息用结构体存起来插入堆中. 那么最大值就是堆顶那组(假设右端点为$r$),但考虑到次大值可能出自同一个右端点,所以在弹出堆顶后还需要将以$r$为右端点的次大值插入堆中. 那么如何求出以$r$为右端点的最大值和次大值? 我们对序列每个数为一个版本建可持久化$trie$…
4260: Codechef REBXOR Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 2218  Solved: 962[Submit][Status][Discuss] Description Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,…,AN.     Output 输出一行包含给定表达式可能的最大值.   Sample Input 5 1 2 3 1 2 Sample Output…
4103: [Thu Summer Camp 2015]异或运算 Time Limit: 20 Sec  Memory Limit: 512 MB Description 给定长度为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. Input 第一行包含两个正整数n,m,分别表示两个数列的长度 第二行包含n个非负整数xi 第三行…
3261: 最大异或和 Time Limit: 10 Sec  Memory Limit: 512 MB Description       给定一个非负整数序列 {a},初始长度为 N.       有   M个操作,有以下两种操作类型: 1 .A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N+1.2 .Q l r x:询问操作,你需要找到一个位置 p,满足 l<=p<=r,使得: a[p] xor a[p+1] xor ... xor a[N] xor x 最大,输出最大是多…
之前都没做出来的同名题简直留下心理阴影啊...其实这道题还是挺好想的QAQ 可以发现,鸟可以走到的点是如下图这样扩展的: 由$(0,0)$向两边扩展,黑色是可以扩展到的点,红色是不能扩展的点,可以推出,在扩展的区间内,横纵坐标奇偶性相同的点就可以被扩展到,反之则一定不可以. 接下来看有柱子的情况: 可以发现,遇到柱子时,可行的区域就变成了与柱子的区域取交集,然后接着向后扩展,直到遇到下一个柱子. 我们最后要找的实际上就是横坐标为$m$时可行区域的下界,可以证明到下界按的次数一定是最少的.而求到一…
题目链接 BZOJ4103 题解 一眼看过去是二维结构,实则未然需要树套树之类的数据结构 区域异或和,就一定是可持久化\(trie\)树 观察数据,\(m\)非常大,而\(n\)和\(p\)比较小,甚至可以每次询问都枚举\(x_i\) 所以我们可以考虑对\(y_i\)建\(trie\),每次询问取出对应区间的\(x_i\)在对应区间的\(trie\)树中跑 多点询问和单点询问时类似的,只不过它们会分开走 我们只需每次记录每个\(x_i\)所在的节点 对于每一层,统计一下能异或出多少\(1\),如…
[BZOJ3261]最大异或和 Description 给定一个非负整数序列 {a},初始长度为 N.       有   M个操作,有以下两种操作类型:1 .A x:添加操作,表示在序列末尾添加一个数 x,序列的长度 N+1.2 .Q l r x:询问操作,你需要找到一个位置 p,满足 l<=p<=r,使得:a[p] xor a[p+1] xor ... xor a[N] xor x 最大,输出最大是多少. Input 第一行包含两个整数 N  ,M,含义如问题描述所示.   第二行包含 N…