社区讨论

样例过了,20分求助

P10724[GESP202406 七级] 区间乘积参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mews28zu
此快照首次捕获于
2025/08/29 19:56
6 个月前
此快照最后确认于
2025/11/03 23:42
4 个月前
查看原帖
死因:RE
详见: https://www.luogu.com.cn/record/233755109
CPP
#include<bits/stdc++.h>
using namespace std;
long long n,a[100006];
long long f[3000005];
long long ans;
long long fenjie(long long x){
	int res=0;
	for(long long i=2;i*i<=x;++i){
		while(x%i==0){
			res^=1<<i;
			x/=i;
		}
	}
	if(x!=1)res^=1<<x;
	return res;
}
int main(){
	cin>>n; 
	f[0]=1;
	for(int i=1;i<=n;++i){
		cin>>a[i];
		a[i]=fenjie(a[i]);
		a[i]^=a[i-1];
		ans+=f[a[i]]++;  
	}
	cout<<ans;
	return 0;
}


回复

2 条回复,欢迎继续交流。

正在加载回复...