线性基

void insert(ll x)
{
	for(int i=50;i>=0;--i)
	{
		if(x&((ll)1<<i))
		{
			if(!a[i])
			{
				a[i]=x;
				break;
			}
			else x^=a[i];
		}
	}
}
ll query_max()
{
	ll ans=0;
	for(int i=50;i>=0;--i)
		if((ans^a[i])>ans)
			ans^=a[i];
	return ans;
}
posted @ 2020-01-22 20:20  lhm_liu  阅读(178)  评论(0编辑  收藏  举报