洛谷P3812 模板 線性基

2022-02-19 15:56:23 字數 449 閱讀 3024

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

\(1\leq n\leq50, 0\leq a_i\leq 2^\)

顯然重複不重複沒有什麼區別。

直接套線性基板子。

#include using namespace std;

typedef long long type;

const int w = 51;

type basis[w + 1];

void ins(type x)

x ^= basis[i];}}

}type maxxor()

return ans;

}int n;

type x;

int main()

cout << maxxor() << endl;

}

洛谷 P3812 模板 線性基

這是一道模板題。給定n個整數 數字可能重複 求在這些數中選取任意個,使得他們的異或和最大。第一行乙個數n,表示元素個數 接下來一行n個數 僅一行,表示答案。輸入 1 2 1 1輸出 1 11 n 50,0 si 250 1 leq n leq 50,0 leq s i leq 2 1 n 50,0 ...

洛谷P3812 模板 線性基

這是一道模板題。給定n個整數 數字可能重複 求在這些數中選取任意個,使得他們的異或和最大。輸入格式 第一行乙個數n,表示元素個數 接下來一行n個數 輸出格式 僅一行,表示答案。輸入樣例 1 複製2 1 1 輸出樣例 1 複製1 1 leq n leq 50,0 leq s i leq 2 1 n 5...

洛谷P3812 模板 線性基

題目大意 給定 n 個數,選取任意個數,使得他們的異或和最大。題解 線性基,原理貪心看不懂。對於每乙個數,設它的最高位的 1 在第 i 位,如果此時 p i 為空,就將這個數加入線性基,否則異或上 p i 繼續找。最後貪心看 ans 異或上線性基的這一位會不會變大,若變大就轉移 卡點 無 c cod...