随笔分类 - 乱搞——线性基
摘要:题意: "传送门" 给$n$个集合,每个集合有一些数。给出$m$个询问,再给出$l$和$r$和一个数$v$,问你任意的$i \in[l,r]$的集合,能不能找出子集异或为$v$。简单点说,$v$能用$[l,r]$任意一个集合的子集异或和表示。 思路: 子集异或和显然是用线性基。我们用线段树维护任意区
阅读全文
摘要:题意: 强制在线,求$LR$区间最大子集异或和 思路: 求线性基的时候,记录一个$pos[i]$表示某个$d[i]$是在某个位置更新进入的。如果插入时$d[i]$的$pos[i]$小于我当前插入的$pos[r]$,那么就用当前插入的数换出原来的$d[i]$,继续进行插入并更新$pos$,这样就能保证
阅读全文
摘要:题意: 给出$n$个数,求出子集异或第$k$小的值,不存在输出 1。 思路: 先用线性基存所有的子集,然后对线性基每一位进行消元,保证只有$d[i]$的$i$位存在1,那么这样变成了一组基线性基,然后按$k$的二进制找地k小。因为线性基不保存0,所以对有0的情况要进行特判。 代码: cpp incl
阅读全文

浙公网安备 33010602011771号