线性基(模板)

Posted minun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性基(模板)相关的知识,希望对你有一定的参考价值。

这里是连接o(´^`)o

线性基性质:

1.原序列里面的任意一个数都可以由线性基里面的一些数异或得到。
2.线性基里面的任意一些数异或起来都不能得到0 0
3.线性基里面的数的个数唯一,并且在保持性质一的前提下,数的个数是最少的

//#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<queue>
#include<set>
#include<map>
#include<vector>

#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
#define sl(x) scanf("%lld",&(x))
#define rep(i,a,b) for(int i=a;i<=b;i++)

using namespace std;

int p[105];

void Insert(int now)

    per(i,62,0)
    
        if((now&((ll)1<<i)))
        
            if(!p[i])
            
                p[i]=now;
                break;
            
            now^=p[i];
        
    


#undef int
int main()

#define int long long
    int n;
    sl(n);
    rep(i,1,n)
    
        int now;
        sl(now);
        Insert(now);
    
    int ans=0;
    per(i,62,0)
        if((ans^p[i])>ans) ans^=p[i];
    cout<<ans<<"\n";

    return 0;

 

以上是关于线性基(模板)的主要内容,如果未能解决你的问题,请参考以下文章

P3812 模板线性基

[算法模板]线性基

[模板]线性基

线性基总结(其实就是我的模板)

线性基(模板)

[P3812][模板]线性基