P3812 模板 線性基

2022-07-25 08:15:10 字數 1032 閱讀 7219

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

題解:線性基的模板題,直接套模板!

ac**:

1 #include2 #include3 #include4 #include5 #include6 #include7

#define numm ch-48

8#define pd putchar(' ')

9#define pn putchar('\n')

10#define pb push_back

11#define fi first

12#define se second

13#define fre1 freopen("1.txt","r",stdin)

14#define fre2 freopen("2.txt","w",stdout)

15using

namespace

std;

16 template 17

void read(t &res)

23 template 24

void

write(t x)

29const

int maxn=70;30

const

int n=60;31

const

int inf=0x3f3f3f3f;32

const

int inf=0x7fffffff

;33 typedef long

long

ll;34

ll d[maxn],x;

35int

n;36

void

add(ll x)

43else x^=d[i];44}

45}46void

work()

51ll qmax()

57int

main()

58

**在這裡!

P3812 模板 線性基

線性基可以解決的問題 給定n個整數 數字可能重複 求在這些數中選取任意個,使得他們的異或和最大。然後這道題也是一道模板題了。什麼是線性基呢?就是乙個去求解異或和最值的問題,為什麼可以求異或和最大呢,這裡需要用到了異或的性質了。a b c則有a c b以及a b c。所以我們距離9 10 12 11這...

P3812 模板 線性基

線性基是什麼?你可以理解為將乙個序列處理完之後得到的產物,並且有如下性質 1.原序列裡面的任意乙個數都可以由線性基裡面的一些數異或得到。2.線性基裡面的任意一些數異或起來都不能得到0 3.線性基裡面的數的個數唯一,並且在保持性質一的前提下,數的個數是最少的 因此,線性基可以計算一段序列中異或和最大,...

P3812 模板 線性基

n 給定乙個長度為n nn的序列,要從中選出若干個數,使得它們的異或值最大,輸出這個最大值 資料範圍 n 50 n leq 50 n 50 sol utio nsolution soluti on線性基的異或值域和原序列的異或值域相同,考慮構造線性基,每次比較是否需要異或,這樣一定不會更劣 時間複雜...