首页 > 其他分享 >线性基

线性基

时间:2023-01-16 19:11:25浏览次数:60  
标签:int 插入 异或 base il 线性

插入

设插入\(k\),\(k\)的最高位为\(l\)

  • 若线性基的第\(l\)位为\(0\),则直接在该位插入\(k\),结束
  • 若线性基的第\(l\)位已经有值\(base_i\),则\(x = x\oplus a_i\),重复上述操作。(\(\oplus\)表示异或)
int base[N+1];
il void insert(int k){
    for(ri int l=N;~l;--l){
        if(k>>l){
            if(!base[l]){base[l]=k;break;}
            k^=base[l];
        }
    }
    return;
}

同理可判断能否通过原数列异或得到一个数\(k\)

il bool check(int k){
    for(ri int l=N;~l;--l){
        if(k&(1<<l)){
            if(!base[l]) return 0;
            k^=base[l];
        }
    }
    return 1;
}

查询异或最值

  • 查询最小值:考虑插入的过程,因为每一次跳转操作,xx的二进制最高位必定单调降低,所以不可能插入两个二进制最高位相同的数。而此时,线性基中最小值异或上其他数,必定会增大。所以,直接输出线性基中的最小值即可。
  • 异或最大值:从高到低遍历线性基,考虑到第\(l\)位时,如果当前的答案\(as\)第\(l\)位为\(0\),就将\(as\)异或上\(base_i\);否则不做任何操作。显然,每次操作后答案不会变劣,最终的\(as\)即为答案。
il int ask_min(){
    for(ri int l=0;l<=N;++l){
        if(base[l]) return base[l];
    }
    return -1;
}  
il int ask_max(){
    int as=0;
    for(ri int l=N;~l;--l){
        as=max(as,as^base[l]);
    } 	
    return as;
}

资料

qwq

标签:int,插入,异或,base,il,线性
From: https://www.cnblogs.com/windymoon/p/17056151.html

相关文章

  • 线性变换的理解
    转自知乎用户,人来狗往......
  • exgcd & 线性同余方程
    前置芝士裴蜀定理exgcdexgcd即扩展欧几里得定理,常用来求解\(ax+by=gcd(a,b)\)的可行解问题推导过程:考虑我们有:​ \(ax+by=gcd(a,b)\)——裴蜀定理​ \(a_......
  • 动态规划笔记(三):其它的常见线性问题(未整理完)
    最长公共子序列(HDU-1159)注意子序列和子串的区别用\(dp[i][j]\)表示序列\(X\)前\(i\)项和序列\(Y\)的前\(j\)项的最长子序列的长度当\(x[i]=x[j]\)时,\(dp[i][j]=dp[i......
  • 位运算与线性基
    运算律与或异或分别满足交换律和结合律,但有两种同时出现时好像就都不满足了。异或异或的逆运算是它本身(参看各种解怪题选择性报告中树上异或路径)。从这一性质出......
  • DP7361 是一款立体声六通道线性输出的数模转换器-兼容CS4361
    DP7361是一款立体声六通道线性输出的数模转换器,内含插值滤波器、Multi-Bit数模转换器、模拟输出滤波器,支持主流的音频数据格式。DP7361片上集成线性低通模拟滤波器和四......
  • 线性基&线性空间 学习笔记
    Part1基础概念向量:一行的矩阵或一行的矩阵线性空间:由一组向量通过线性组合(相加和乘系数)能够表示的向量的集合。线性相关\(and\)线性无关:若一组向量中存在一个向量能......
  • 数组描述线性表(C++实现)
    线性表也称有序表,其每一个实例都是元素的一个有序集合抽象类linearList一个抽象类包含没有实现代码的成员函数,这样的成员函数称为纯虚函数,用数字0作为初始值来说明templ......
  • 7-线性回归
    title:7-线性回归date:2021-01-1810:58:30permalink:/pages/491782/......
  • 第二章 线性表(上)
    一、线性表的定义及具体操作1.定义线性表(LinearList)是具有相同数据类型的n(n≥0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,则其一般表......
  • PostGIS之线性参考
    1.概述PostGIS是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在SQL中运行空间查询PostGIS官网:AboutPostGIS|PostGISPostGIS官方教程:PostGIS......