线性基是一种数据结构,可以在$logn$的时间内计算出所有数的异或最大和以及异或最 小值。 1.线性基里的数都由原数异或得来 2.线性基里任意几个数异或起来的结果都不相等。 3.线性基异或出来的结果的一个集合,与原数异或出来的集合相等(0除外,由性 质2就决定了不会有0的产生)。 4.线性基里能放下 ...
分类:
其他好文 时间:
2019-09-02 11:54:34
阅读次数:
93
HDU3949 XOR 线性基板子题 给定一些数 求这些数能通过异或得到的第k大的值。 代码: 1 #include <bits/stdc++.h> 2 #define nmax 10010 3 4 using namespace std; 5 typedef long long ll; 6 ll ...
分类:
其他好文 时间:
2019-09-01 01:17:38
阅读次数:
104
题意:给定一个数列a,给定两种操作: 1.询问[l,r]区间内最大的xor和 2.n++,a[n]赋值为x 要求强制在线 n,m<=5e5,a[i]<2^30 思路:同CF1100F 固定右端点,维护每一维上使生成空间变大的最大的左端点 ...
分类:
其他好文 时间:
2019-08-31 17:02:14
阅读次数:
57
题意:给定n个数,每个数为c[i],有q个询问,每次询问从第l个到第r个数字的最大xor和 n,q<=5e5,c[i]<=1e6,时限3s 思路:直接线段树维护区间线性基是3个log 做法1:因为不是强制在线把询问分治能降到2个log ...
分类:
其他好文 时间:
2019-08-31 15:12:45
阅读次数:
97
想知道线性基直接看大佬的https://blog.sengxian.com/algorithms/linear-basis, 我就是弄下我常用的操作。 定义 学过线代里面的“基向量”,基向量说的就是一组可以表示整个空间的向量。比如在三维空间中一个基向量就是(1,0,0) (0,1,0) (0,0,1 ...
分类:
其他好文 时间:
2019-08-27 21:12:31
阅读次数:
70
题意:给出一个序列,两种操作,求区间[l,r]的区间最大异或和,和在末尾添加一个数 思路:强制在线,保存每个线性基的数值,接下去直接去搜第r个线性基,但要保持时间比l要大,新增了一个pos数组代表一个数插入时的时间戳,插入的时候如果可以替换那么就用之后的替换之前的,保证线性基中都是最新的元素,可以直 ...
分类:
其他好文 时间:
2019-08-27 10:33:48
阅读次数:
62
边没有负权,最短路最多只有n条边 很暴力的思想: 先跑一遍最短路,找出最短路上的边,枚举每条边,翻倍,放进原图再跑一遍。取最大值 好熟悉啊 分层建图,建k层 每层内部是原图 若原图中u到v有连边,则由本层的u向下一层的v连一条边权为0的单向边 当然对于某些duliu的图(比如边数<k),用不完k次机 ...
分类:
其他好文 时间:
2019-08-13 17:24:31
阅读次数:
98
Codeforces 938G Shortest Path Queries 一张连通图,三种操作 1.给x和y之间加上边权为d的边,保证不会产生重边 2.删除x和y之间的边,保证此边之前存在 3.询问x到y的路径异或最小值 保证图在任意时刻连通 首先连通图路径异或相当于从x到y的任意一条路径再异或上 ...
分类:
其他好文 时间:
2019-08-13 15:54:31
阅读次数:
75
$OTZgengyf$。。当场被吊打$QwQ$ 思路:线性基 提交:$3$次 错因:往里面加数时$tmp.p$与$i$区分不清(还是我太菜了) 题解: 我们对每个位置的线性基如此操作: 对于每一位,保存尽量靠后的数; 所以每一位还要记录位置。 (后文区分"位"(二进制位)和"位置"(原数组中的第几位 ...
分类:
其他好文 时间:
2019-08-13 01:03:27
阅读次数:
152
任选一条路径,考虑如果从一个点向另外一个方向走,该方向上一定有一个环(否则来去无意义),所以相当于一条路径+许多的环异或最大值,可以用线性基来求 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define N 100005 4 #define ...
分类:
其他好文 时间:
2019-08-10 09:56:42
阅读次数:
81