線性基 BZOJ 4269 再見Xor

2021-08-14 23:39:18 字數 967 閱讀 8482

划水中。。遲早要完

顯然要線性基。。

考慮求k

k

大。 對於基的每乙個位置,因為其最高非零位就是位置標號,那看一下

k' role="presentation">k

k的這一位是否為

1 1

,看是否要異或上(或者不異或)使得這一位得到的答案較大。

#include 

#define show(x) cerr << #x << " = " << x << endl

using

namespace

std;

typedef

long

long ll;

typedef pair pairs;

const

int n = 101010;

inline

char get(void)

return *s++;

}template

inline

void read(t &x)

struct linearbasis

inline

int insert(int x) else x ^= a[i];

}return

0; }

inline

int query(int k)

return res;

}} lb;

int n, x, mx;

int main(void)

int l = 0, r = (1

<< lb.size()) - 1, mid, ans;

printf("%d ", mx = lb.query(r));

while (l <= r)

printf("%d\n", lb.query(ans));

return

0;}

BZOJ4269再見Xor 高斯消元解線性基

給定n個數,你可以在這些數中任意選一些數出來,每個數可以選任意多次,試求出你能選出的數的異或和的最大值和嚴格次大值。第一行乙個正整數n。接下來一行n個非負整數。一行,包含兩個數,最大值和次大值。33 5 6 6 5 100 n 100000,保證n個數不全是0,而且在int範圍內 求異或最大值和嚴格...

BZOJ4269 再見Xor 高斯消元

給定n個數,你可以在這些數中任意選一些數出來,每個數可以選任意多次,試求出你能選出的數的異或和的最大值和嚴格次大值。第一行乙個正整數n。接下來一行n個非負整數。一行,包含兩個數,最大值和次大值。33 5 6 6 5 100 n 100000,保證n個數不全是0,而且在int範圍內 題解 大水 inc...

BZOJ 2115 線性基)詳解

第一行包含兩個整數n和 m,表示該無向圖中點的數目與邊的數目。接下來m 行描述 m 條邊,每行三個整數si,ti di,表示 si 與ti之間存在 一條權值為 di的無向邊。圖中可能有重邊或自環。僅包含乙個整數,表示最大的xor和 十進位制結果 注意輸出後加換行回車。5 71 2 2 1 3 2 2...