• 线性基学习笔记


    介绍

    线性基是向量空间的一组基底。

    正如平面向量的基底,空间向量的基底一样,线性空间的基底可以表示线性空间中的任意一个向量。

    简单来说,线性基是一个这样的集合:

    • 线性基中的元素互不相同
    • 线性基中没有异或和为0的子集
    • 线性基任意子集的异或和互不相同
    • 线性基中每个元素的最高位互不相同
    • 线性基中的元素相互异或可以得到原元素所有相互异或得到的值

    构造

    (show you the code.)

    inline void insert(ll *A,ll w){
    	for(int i=60;i>=0;i--){
    		if(!((w>>i))) continue;
    		if(!A[i]){A[i]=w;break;}
    		w^=A[i];
    	}
    	return;
    }
    

    用途

    用于解决和异或有关的相关问题。

    异或最大值

    SGU-275

    Luogu P3812

    和图论路径相关的:

    Luogu P4151

    和树论有关的:

    Luogu P3292

    异或种类数

    统计线性基中的元素个数(cnt),原元素相互异或可以得出的互不相同的数的个数为(2^{cnt})

    Luogu P3857

    要求所选元素异或和不为0

    判断待选的元素是否能插入线性基,也就是看此元素插入线性基时是否被异或成了0。

    一般和贪心一起出题。

    博弈论相关:

    Luogu P4301

    简单贪心:

    Luogu P4570

    异或排名

    根据位数判断累加,由于我们可以求最高位为(i)最大的数(w),所以比(w)小的数有(2^{cnt})(cnt)表示在(i)之前有多少位上线性基有值。

    结论:所有不同的异或和出现次数都相同。

    Luogu P4869

    问一个数是否能被线性基中的元素表示出来

    一位一位去异或,和插入元素差不多。

    看最后是否为0。

    ABC223H

    未完待续❀

  • 相关阅读:
    <c:if></c:if>用法-转载
    Windows下配置Apache服务器
    ScrureCRT访问CentOS时出现乱码的解决办法
    Windows平台下Git服务器搭建
    Group_Concat函数示例
    Mysql Federated Server 示例
    MySQL几个特别语法示例
    MySQL事件调度器
    Disruptor Java版和.NET版的区别
    委托的三种实现方式
  • 原文地址:https://www.cnblogs.com/xxbbkk/p/15260409.html
Copyright © 2020-2023  润新知