模板 線性基

2021-08-17 04:26:23 字數 428 閱讀 4947

給定n個整數(數字可能重複),求在這些數中選取任意個,使得他們的異或和最大。

線性基模板可解決

將n個整數看做集合a

線性基即為集合a的子集

線性基中每個元素的異或方案唯一,也就是說,線性基中不同的異或組合異或出的數都是不一樣的。

線性基的二進位制最高位互不相同。

這樣我們先構造出線性基

然後貪心的去搞最大值就行了

luogu 3812

#include 

#include

#define ll long long

ll p[62];

void insert(ll x)

x^=p[i];

}}ll askmax()

int main()

模板 線性基模板

數學太差,直接線性基當資料結構用orz 表示數集 1,2 k 1 表示乙個異或集合 可以說是將原數集壓縮 性質 直接抄的orz,雖然也不是特別懂 0 2.線性基的異或集合中每個元素的異或方案唯一,其實這個跟性質1是等價的。3.線性基二進位制最高位互不相同。1,2n 1 1,2n 1 1,2n 1 5...

模板 線性基

難度較大,請勿棄療 給定n個整數 數字可能重複 求在這些數中選取任意個,使得他們的異或和最大。n 50sample input33 21sample output 3看上去莫名其妙地想貪心。給些定義 s 為無符號整數集 即s n 記為 xor sum s x or s um s s1 s2 s s ...

線性基 模板

線性基的用處 洛谷p3812 牛客練習賽26d 參考部落格 這位童鞋寫得很好 求異或最大值 include bits stdc h using namespace std typedef long long ll const int maxn 1e5 5 const int mod 1e9 7 co...