题目链接:https://ac.nowcoder.com/acm/problem/14247 思想:暴力枚举两个区间的左右端点时间复杂度很高,可如果枚举一个区间,问题会简化。 维护到 i 处的异或和(pre[i],类似于桶排序中的桶,所以num数组开大点),枚举右区间加上左区间与当前区间异或值相等的 ...
分类:
其他好文 时间:
2020-04-23 01:01:16
阅读次数:
55
题目链接 题意 给定正整数 $a_1, a_2, \ldots, a_n$, 保证 $a_i<2^m$. 任取其中若干个(可以不取,下同),对于 $c=0, 1, \ldots, m$ 求有多少种取法使得取出的正整数的异或和(如果不取,异或和为 $0$, 下同)恰有 $c$ 位为 $1$. 两种取法 ...
分类:
其他好文 时间:
2020-04-21 18:52:00
阅读次数:
157
首先,什么是线性基: 线性基是一个数的集合,任意一个序列都有至少提个线性基。有一组数a1,a2...an和线性基d1,d2...,dm,di表示**最高位1在第i位的数**。线性基的作用由于线性基值域与原数列值域相同的特点,可以用它来维护异或和。线性基的性质 线性基有以下三大性质: 1.原序列里面的 ...
分类:
其他好文 时间:
2020-04-19 15:09:53
阅读次数:
61
题意: 给一个序列,问有多少个区间的异或和大于等于$K$。 思路: 处理出前缀异或和。 对于每个区间$(l,r)$的异或和为$sum[l] \^ sum[r]$。 对于每个$sum[i]$,如果大于$K$,$ans+1$。 在字典树上查询二进制的每一位。 ①$sum=1,k=1$:走$next[0] ...
分类:
其他好文 时间:
2020-04-14 18:32:27
阅读次数:
67
把序列排序后 问题转化为子序列两两之间的异或和大于等于k 用户$Trie$树优化$dp$ 因为不满足单调性所以不能用二分来优化 $ans=\sum_{i=1}^{n}n%i$ $ans=\sum_{i=1}^{n}(n n/i i)$ $ans=n^2 \sum_{i=1}^{n}i (n/i)$ ...
分类:
其他好文 时间:
2020-04-07 18:37:19
阅读次数:
97
注意观察题目 每个点都只能将石子给自己的两个儿子 且石子个数 =1. 显然 这是一个阶梯NIM. 只有和最后一层的奇偶性相同的层才会有贡献 证明也很显然。 那么这其实就是近乎NIM游戏了 胜负自然取决于所有有贡献的石子堆的异或和。 但是 上午我傻了的一点 没有分清SG函数和NIM游戏的联系。 在NI ...
分类:
其他好文 时间:
2020-04-03 20:02:59
阅读次数:
71
T1 异或和为0则先手必败 设$dp[i][j][k]$代表考虑到$i$选了$j$个数(对$d$取模)异或和为$k$的方案数 假如把$a$从大到小排序的话便可以剪枝: 第三维是$2^b$(b是满足$2^b a[i]$的第一个数) 复杂度$O(1e7 d)$ T2 设$f[i][j][k]$代表从S走 ...
分类:
其他好文 时间:
2020-03-28 23:08:29
阅读次数:
68
先对其求出前缀异或和,然后$o(k)$次枚举,每次选择最大值,考虑如何维护可以全局开一个堆,维护出每一个点的最大值的最大值,那么相当于要在一个点中删去一个点再找到最大值将这些删去的点重新建成一颗trie树,与所有数构成的trie树减一下,就可以找到新的最大值了,再用堆维护即可有一些细节:1.数值范围 ...
分类:
其他好文 时间:
2020-03-26 21:34:50
阅读次数:
61
题目描述 给 n 个数,从中选取任意个数判断有多少种方法可以使得选择的数的异或和小于 m 。 思路 建立状态 dp [ i ][ j ] 表示 i 个数中异或和为 j 的个数。 可以选择加上第 i 个数的异或和或者选择不加,于是有以下状态转移方程: dp[i][j] += dp[i 1][j] (不 ...
分类:
其他好文 时间:
2020-03-24 18:55:36
阅读次数:
57
题意: 给出两个数 $u,v$,求出一个元素个数最少的集合使得所有数的异或和为 $u$,和为 $v$。并输出元素个数和各个元素。 数据范围:$0\leq u,v \leq 10^{18}$ 分析: 先分类讨论: 1.当 $u v$ 时,显然无解; 2.当 $u=v$ 且 $u!=0$ 时,解为 $u ...
分类:
其他好文 时间:
2020-03-16 19:14:20
阅读次数:
58