划水中。。遲早要完
顯然要線性基。。
考慮求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...