线性基

线性基

作业部落链接:https://www.zybuluo.com/xzyxzy/note/1076707


前言

网上优秀博客:https://blog.sengxian.com/algorithms/linear-basis

一、理解

所谓基大概就是指
在一个集合内定义一种运算,用基的元素可以运算出所有用集合中的元素运算的结果
可以理解成基是一个集合的。。浓缩?

然后线性基呢就是这个运算是异或运算

二、性质

线性基中以每一位为最高位的1的数至多只有一个
所以把一个元素加入线性基中,那么

if(x&(<<j))
    {
        if(!p[j]){p[j]=x;break;}//一定要break!!
        else x^=p[j];
    }

三、题目

  • [x] 【模板】线性基 https://www.luogu.org/problemnew/show/P3812
  • [x] [BeiJing2011] 元素 http://www.lydsy.com/JudgeOnline/problem.php?id=2460
  • [x] [WC2011] 最大XOR和路径 https://www.luogu.org/problemnew/show/P4151
  • [ ] [SCOI2016] 幸运数字 https://www.luogu.org/problemnew/show/P3292
  • [ ] [BZOJ3811] 玛里苟斯 http://www.lydsy.com/JudgeOnline/problem.php?id=3811
  • [ ] [BZOJ2844] albus就是要第一个出场 http://www.lydsy.com/JudgeOnline/problem.php?id=2844
  • [ ] [HDU2949] XOR https://vjudge.net/problem/HDU-3949
  • [x] 2018.3.16考试题T1