设有两个线性基 $\alpha,\beta$,如果 $\beta_i$ 能被 $\theta \bigcup \phi, \theta \subseteq \alpha,\phi \subseteq \{\beta_0,\beta_1,...,\beta_{i-1}\}$ 表示,则把 $\theta... ...
分类:
其他好文 时间:
2020-07-06 10:50:13
阅读次数:
53
有 $n$ 个元素,每个元素有个序号和一个值,一个元素可以选择当且尽当其序号与已选元素序号的异或和不为$0$,求你可选择的元素值和的最大值。 ...
分类:
其他好文 时间:
2020-06-17 12:41:55
阅读次数:
51
省队选拔前复习一下线性基. 证明不会,永远都不会,学习证明是不可能的 有如下结论: 1. 线性基大小是固定的,不会因为加入顺序不同而改变. 2. 设线性基大小为 k,则一共有 $2^k$ 种不同的异或结果. 3. 每种异或结果出现次数恰好为 $2^{n-k}$. 4. 线性基内的数随便异或线性基也不 ...
分类:
其他好文 时间:
2020-06-17 11:20:48
阅读次数:
60
根据$[WC2011]XOR$的思路,每次暴力重构线性基,令$l'=\frac{l^{2}}{w}$,则有一个$nql'$的做法(这里线性基位数很多,所以要用bitset) 由于初始连通,因此每一个环一定可以由若干个[树边+1条非树边]的环构成(构成指异或),那么预处理出每一个操作的环大小,相当于维 ...
分类:
其他好文 时间:
2020-06-14 23:27:05
阅读次数:
61
题目描述 给定n个整数(数字可能重复),求在这些数中选取任意个,使得他们的异或和最大。 输入格式 第一行一个数n,表示元素个数 接下来一行n个数 输出格式 仅一行,表示答案。 #include<cstdio> using namespace std; #define ll long long ll ...
分类:
其他好文 时间:
2020-06-10 22:58:03
阅读次数:
67
看到异或最值,显然想到线性基。 用树上倍增的方法,维护当前点$x$到倍增父节点$fa[x][i]$这条路径上的线性基,在倍增的时候暴力合并即可。 注意这个线性基的倍增数组是没有包括最后一个点的信息的,需要特殊处理。然后就搞完了。 时间复杂度$O(n log_n log_v+q log_n log_v ...
分类:
其他好文 时间:
2020-05-03 10:29:34
阅读次数:
59
题目很显然就是要求序号的线性基。我们希望线性基里的权值最大,就按权值从大到小插入就行了。 为什么是对的呢?插入线性基的一个矿石只会和另一些矿石在一个位置上冲突,而那些矿石也只能插入这一位,同时它们价值不如当前的矿石,所以这是最优的。 ...
分类:
其他好文 时间:
2020-05-01 13:05:31
阅读次数:
42
用处 ~~没用我学这东西干嘛~~ + 快速查询一个数是否可以被一堆数异或出来 + 快速查询一堆数可以异或出来的最大/最小值 + 快速查询一堆数可以异或出来的第k大值 ~~这么点?~~ 还有点性质在下面 ~~可能有点用~~ 性质 + 原数列里的任何一个数都可以通过线性基里的数异或表示出来 + 线性基里 ...
分类:
其他好文 时间:
2020-05-01 13:01:48
阅读次数:
54
把每个对应的序列看成二进制数,能控制就把这一位设为$1$,那么每异或出来一个新的数就对应一种情况。 根据线性基的性质,任意一个子集异或和都不一样,所以直接线性基即可。 ...
分类:
其他好文 时间:
2020-05-01 12:55:39
阅读次数:
42
Nim游戏的结论就是先手异或和不为0的时候必胜,所以留下线性基就行了。 ...
分类:
其他好文 时间:
2020-05-01 12:53:35
阅读次数:
47