BZOJ4269 再見Xor 高斯消元

2022-05-20 18:07:47 字數 567 閱讀 6199

給定n個數,你可以在這些數中任意選一些數出來,每個數可以選任意多次,試求出你能選出的數的異或和的最大值和嚴格次大值。

第一行乙個正整數n。

接下來一行n個非負整數。

一行,包含兩個數,最大值和次大值。

33 5 6

6 5

100% : n <= 100000, 保證n個數不全是0,而且在int範圍內

題解:大水~

#include #include #include using namespace std;

int n,tot,ans;

int v[100010];

int main()

if(!(v[tot]&i))

for(j=1;j<=n;j++) if(j!=tot&&(v[j]&i)) v[j]^=v[tot];

} for(i=1;i<=tot;i++) if((ans^v[i])>ans) ans^=v[i];

printf("%d %d",ans,ans^v[tot]);

return 0;

}

線性基 BZOJ 4269 再見Xor

划水中。遲早要完 顯然要線性基。考慮求k k 大。對於基的每乙個位置,因為其最高非零位就是位置標號,那看一下 k role presentation k k的這一位是否為 1 1 看是否要異或上 或者不異或 使得這一位得到的答案較大。include define show x cerr x x en...

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

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

bzoj2337 XOR路徑 高斯消元

遇到位運算,還是一位一位來。假設考慮二進位制第k位,那麼 令f i 表示以到達i時,第i位存在的期望,那麼對於所有與i相連的j,如果 i,j 的第k位為1,那麼f i 1 f j i的入度,否則f i f j i的入度。這樣看起來有n個方程,但是有乙個是沒用的,隨便去掉乙個。然後實際上令從n到1是等...