向量空間中可以組合出整個空間的項的最小數叫做這個線性空間的維數,而所有的項作為該線性空間的乙個基底,簡稱基。
線性基是一種特殊的基底,對應異或空間的基底,即使用基底相互異或可以得到整個空間
求幾個數的線性基可以用高斯消元求解,將每個數二進位制展開後,模擬於求向量空間的基底,只是將加法換為不進製加法異或
for(int i=1;i<=n;++i)
break;
} }}
#includeusing namespace std;
typedef long long ll;
int n;
ll a;
ll base[65];
void insert(ll x)
else x^=base[i];
} }}int main()
ll ans=0;
for(int i=60;i>=0;--i) if((ans^base[i])>ans) ans^=base[i];
cout
}
線性基學習筆記
線性基是幹嘛的呢?給定n個數,求所有數的異或和最大是多少?求解這類問題的時候,就需要線性基了 個人感覺線性基本身就一種貪心。首先定義ba se i bas e i 表示最高位1在i位的數是什麼 對於新進來的數tm p tmp 我們先找出他最高位上的1,假設為第 j j 位,然後看一下ba se j ...
線性基 學習筆記
includeusing namespace std using ll long long const int maxn 5e5 5 原來的數 const int maxbit 63 ll a maxn 原來的數 ll p maxbit p j 第j位為最高位1的數 最高位1在第j位的數 int m...
線性基 學習筆記
按位計算,如果相同記為0,不同記為1。如果,a b c,c b a 交換律結合律 對於任何數,x x 0,x 0 x 對 於一 段序列a n,異或 和為a1 a2 an 對於一段序列a n,異或和為a 1 a 2 a n 對於一段序列 an 異或和為 a1 a2 an 設t s,所有 這樣的子 集t...