先按魔力值从大到小排序,然后从大到小插入线性基中,如果插入成功就加上这个魔力值 因为线性基里是没有异或和为0的集合的,所以正确性显然,然后最优性,考虑放进去一个原来没选的,这样为了可行性就要删掉一个,又因为是从大到小加进去的,所以删掉的这个魔力值一定是大于加进去的,所以不优,所以贪心构造的就是最优解 ...
分类:
其他好文 时间:
2018-11-25 13:23:57
阅读次数:
189
Description 求 $n$ 个数的第 $k$ 小的异或和。 Solution 把 $k$ 二进制拆分,若第 $i$ 位上是 $1$,就把线性基中第 $i$ 个元素异或起来。 注意要维护非重叠的右上角矩阵。 Code ...
分类:
其他好文 时间:
2018-11-24 23:55:46
阅读次数:
253
题意 已知一个长度为$n$的整数数列$a[1],a[2],…,a[n]$,给定查询参数$l,r$,问$[l,r]$内,有多少连续子段满足异或和等于$k$。 也就是说,对于所有的$x,y (l\le x\le y\le r)$,能够满足$a[x]\oplus a[x+1]\oplus ...\oplu ...
分类:
编程语言 时间:
2018-11-09 22:53:05
阅读次数:
259
http://codeforces.com/contest/1054/problem/D 题目大意:一个序列a1 a2...an,可以对若干个元素进行取反,使所得的新序列异或和为0的区间个数最多. 题目分析:首先易知每个位置的前缀异或和的值只有两种,因为对元素进行取反时,取偶数个元素异或和不变,奇数 ...
分类:
其他好文 时间:
2018-11-08 13:16:35
阅读次数:
531
[luogu3359]改造异或树 "luogu" 和之前某道题类似只有删边的话考虑倒着加边 但是怎么统计答案呢? 我们考虑以任意点为根dfs一遍求出每个点到根的路径异或和s[i] 这样任意两点x,y的路径异或和可以表示成s[x] xor s[y] 那么设当前连的边的边权为w,我们要找出被连通的两个连 ...
分类:
其他好文 时间:
2018-11-04 17:08:59
阅读次数:
175
Codeforces 1054D Changing Array 做法:给定一个序列,每个数可以把在2进制k位下取反,也可以不变,在改变后,这个序列异或和不为0的区间的个数。考虑如何求出尽可能少的异或为0的序列,对序列求前缀之后,就相当与问这个前缀的序列中,有多少对的值相同,注意还有开始的0。那么对于 ...
分类:
其他好文 时间:
2018-11-04 01:46:29
阅读次数:
190
#3687. 简单题 内存限制:512 MiB时间限制:10 Sec #3687. 简单题 #3687. 简单题 内存限制:512 MiB时间限制:10 Sec 提交提交记录讨论 题目描述 小呆开始研究集合论了,他提出了关于一个数集四个问题:1.子集的异或和的算术和。2.子集的异或和的异或和。3.子 ...
分类:
其他好文 时间:
2018-11-03 21:10:38
阅读次数:
156
线性基真的是一个非常神奇的算法。它可以用于求解一个集合内的最大异或和,而且效率极高,是$O(N\ log\ MaxNum)$的时间复杂度。所以,它还是十分值得一学的。 ...
分类:
其他好文 时间:
2018-11-02 21:40:56
阅读次数:
163
"异或和" (权值树状数组) 题目描述 在加里敦中学的小明最近爱上了数学竞赛,很多数学竞赛的题都是与序列的连续和相关的。所以对于一个序列,求出它们所有的连续和来说,小明觉得十分的简单。但今天小明遇到了一个序列和的难题,这个题目不仅要求你快速的求出所有的连续和,还要快速的求出这些连续和的异或值。小明很 ...
分类:
编程语言 时间:
2018-10-31 19:59:58
阅读次数:
152
思路: 把N个前缀异或和插入一棵trie树中,然后对每个前缀异或和x计算能使x ^ y最大的前缀异或和y。利用了异或运算的a ^ b ^ a = b的性质。 参考了https://cloud.tencent.com/developer/article/1343206 实现: ...
分类:
其他好文 时间:
2018-10-28 20:40:20
阅读次数:
160