线性基
Anoyer
这个作者很懒,什么都没留下…
展开
-
线性基模板
#include<stdio.h> #include<bits/stdc++.h> using namespace std; typedef long long int ll; const int maxn=1e5+7; const int mod=1e9+7; struct Linear_Basis{ ll b[63],nb[63],tot; //b为线性基 ...原创 2018-10-20 22:54:06 · 1669 阅读 · 0 评论 -
SGU-275. To xor or not to xor(线性基模板题)
博主链接 题目链接 题意: 给你n个数,求最大异或值 题解: 先求出线性基,用线性基求这组数出的最大值:从高往低扫,若异或上使答案变大,则异或。 代码: #include<stdio.h> #include<bits/stdc++.h> using namespace std; typedef long long int ll; const int maxn=20010;...原创 2018-10-20 23:00:20 · 801 阅读 · 0 评论 -
HDU-3949-XOR(线性基求第K大异或值)
博主链接 题目链接 题意: 给你n个数,q次询问,每次询问在n个数组成的异或集中第K大的数 题解: 这是一个线性基裸模板题,求第k大:把k二进制拆分,如果k的第i位上是1,ans^=nb[i] 这是什么道理呢? 异或消元最后得到的是一组基 给出n个数能够异或出来的值,都是这些基线性组合形成的数 代码: #include<stdio.h> #include<bits/stdc++...原创 2018-10-21 00:46:01 · 3058 阅读 · 1 评论 -
牛客180D-xor序列(线性基求存在性)
链接:https://www.nowcoder.com/acm/contest/180/D 来源:牛客网 题目 小a有n个数,他提出了一个很有意思的问题:他想知道对于任意的x, y,能否将x与这n个数中的任意多个数异或任意多次后变为y 输入描述: 第一行为一个整数n,表示元素个数 第二行一行包含n个整数,分别代表序列中的元素 第三行为一个整数Q,表示询问次数 接下来Q行,每行两个数x,y,含义如...原创 2018-10-24 21:11:21 · 1155 阅读 · 0 评论 -
BZOJ2844-albus就是要第一个出场
博主链接 题目链接 题意: 给出A数组,共有N个数,你可以选其中一些出来XOR(至少一个数). 所以可能的XOR结果值排序后去重,问你排在第k个的结果值是多少. 题解: 线性基有个性质:线性基内任意集合异或结果唯一,而所有数异或0还是本身 所以每个数字出现的个数就等于(1*异或值为0的集合个数) = 2^(n-cnt) 所以问题就转化为求线性基有效位cnt,和q在所有异或值中第几大 #inclu...原创 2018-11-02 19:42:33 · 1283 阅读 · 0 评论