"G Xor MST" 题解 最小异或生成树 先把所有二进制数上Trie树,然后为了使得异或最小,根据异或的性质,trie树的左右子树都应该自己先连成一个连通块,然后在两个连通块内找到两个数使得异或值最小,这样就能进行连通了。 左右子树的话递归下去处理,在计算两个子树上异或值最小的时候用启发式合并, ...
分类:
其他好文 时间:
2020-02-07 22:16:54
阅读次数:
84
```cpp inline void FWT_or(ll *f, ll x = 1) { for (int p = 2, k = 1;p <= n; p <<= 1, k <<= 1) for (int i = 0;i < n; i += p) for (int j = 0;j < k; j++) ... ...
分类:
其他好文 时间:
2020-02-07 00:55:06
阅读次数:
49
给定一棵 N 个节点的树,树上的每条边都有一个权值。从数中选择两个点 x 和 y ,把从 x 到 y 路径上的所有边权 xor 起来,得到的结果最大是多少? "POJ3764" 分析 显然, $d[u]=d[fa_u] \ xor \ w_{u,fa_u}$ ,于是我们可以通过一遍 bfs 来求出每 ...
分类:
其他好文 时间:
2020-02-04 20:45:33
阅读次数:
78
题意: 给定n个数字a[i],m个询问,每次询问给定l,r,x,求(a[l]+x)xor(a[l+1]+x)xor...xor(a[r]+x)。 题解: 分开来按位考虑。对于第i位,显然,大于第i位的数值都是没有意义的,可以全部丢掉看做0,无论是a还是x都可以这样处理。 如果不+x,那么经过处理之后 ...
分类:
其他好文 时间:
2020-02-01 00:44:38
阅读次数:
63
题目 "传送门" 思路 正难则反,全集是很好求的,即为$\frac{n (n+1)}{2}$,想要异或不为0的尽可能的多,即异或为0的尽可能的少 对于所有的区间$l,r$,可以用前缀和$s$来表示,$s_r ~xor~s_{l 1}$, 之后我们考虑$xor$的性质,只有当两个数相同时,异或值才为0 ...
分类:
其他好文 时间:
2020-01-31 18:38:38
阅读次数:
57
题面 Description Give you two arrays $A[0..2^m 1]$ and $B[0..2^m 1]$. Please calculate array $C[0..2^m 1]$: $$ C[k]=\sum_{i~and~j=k}A[i~xor~j] B[i~or~j] ...
分类:
其他好文 时间:
2020-01-29 23:16:53
阅读次数:
73
本题是经典的莫队算法 莫队算法是离线查询的一种复杂度优秀的暴力算法。 首先我们需要注意异或的几个性质,相同数字异或等于0,所以我们考虑前缀和,因为从ai-aj的异或值就等于pre[i-1]^pre[j] 前缀和的异或,因为相同部分会抵消。 莫队一般和分块相结合,我们需要维护一个cnt数组,cnt[a ...
分类:
编程语言 时间:
2020-01-29 20:05:30
阅读次数:
87
以下内容摘自:https://blog.csdn.net/strangedbly/article/details/51137432 Nim游戏 重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算 ...
分类:
其他好文 时间:
2020-01-29 10:22:07
阅读次数:
76
题目让我们维护一个连通无向图,边有边权,支持加边删边和询问从$x$到$y$的异或最短路。 考虑到有删边这样的撤销操作,那么用线段树分治来实现,用线段树来维护询问的时间轴。 将每一条边的出现时间段标记到线段树上,表示在这一段询问中这条边存在。 异或最短路的处理方法与 "最大XOR和路径" 类似,给线段 ...
分类:
其他好文 时间:
2020-01-27 14:05:55
阅读次数:
69
在给定的N个整数A1,A2……ANA1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数N。 第二行输入N个整数A1A1~ANAN。 输出格式 输出一个整数表示答案。 数据范围 1≤N≤1051≤N≤105,0≤Ai<2310≤Ai<231 输入样例 ...
分类:
其他好文 时间:
2020-01-26 16:08:48
阅读次数:
69