1. 程式人生 > >線性基【模板】

線性基【模板】

文章目錄

題目連結:

#include"bits/stdc++.h"
using namespace std;
typedef long long LL;
const int maxn=1e5+5;
const int MOD=1e9+7;
const int bit=62;
LL Line[bit+5];
void Insert(LL x)
{
	for(int j=bit; j>=0; j--)
	{
		if(x&(1LL<<j))//這裡注意是1LL,容易錯
		{
			if(Line[j]==0)//如果這一行還全部是0
			{
				Line[j]=x;
return ; } else x^=Line[j]; } } } LL getMax() { LL res=0; for(int i=bit; i>=0; i--) { if((res^Line[i])>res)res^=Line[i]; } return res; } int main() { int N; while(cin>>N) { memset(Line,0,sizeof Line); for(int i=1; i<=N; i++) { LL t; cin>>t; Insert
(t); } cout<<getMax()<<endl; } }