50pts,TLE求助
查看原帖
50pts,TLE求助
667448
go_deeper楼主2022/7/17 19:07
#define maxn 32
int n;
typedef unsigned long long ull;
ull a[maxn],ans,pre[maxn],last;
unordered_map<int,int>lo;
inline int lowbit(int x)
{
	return x&-x;
}
inline ull func(int x)
{
	ull ans=0;
	int p=lo[lowbit(x)];
	ans=last^pre[p];
	last=ans;
	return ans;
}
int main()
{
	n=fead();fer(i,1,n)scanf("%llu",&a[i]),pre[i]=a[i];
	fer(i,1,n)pre[i]^=pre[i-1];
	int kk=1;
	fer(i,1,n)
	{
		lo.insert({kk,i});
		kk<<=1;
	}
	int m=pow(2,n)-1;
	for(int i=1;i<=m;i++)
	{
		ans^=i*func(i);
	}
	cout<<ans;
}

还有今天比赛真的心态炸了

2022/7/17 19:07
加载中...