求助线性基,第七个测试点 WA
查看原帖
求助线性基,第七个测试点 WA
648933
HarmonicQuadrilatera楼主2022/5/13 21:03

https://www.luogu.com.cn/record/75605992

看了题解,和题解解法一样。

#include<iostream>
#include<cstdio>
#define int long long
#define M 1000000007
using namespace std;
int n,a,ans=1,xxj[20],pn=19,p[20]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67};
bool insert(int x)
{
	for(int i=pn;i>=1;i--)
	{
		if((x&(1<<i))==0) continue;
		if(xxj[i]==0)
			return (xxj[i]=x),1;
		x^=(1<<i);
	}
	return 0;
}
signed main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int x;
		a=0;
		cin>>x;
		for(int j=1;j<=pn;j++)
		{
			while(x%p[j]==0)
				x/=p[j],a^=(1<<j);
		}
		if(!insert(a)) ans=ans*2%M;
	}
	cout<<ans-1;
	return 0;
}
2022/5/13 21:03
加载中...