刚学OI不久来求助 为什么这个会WA在任务4和5啊
查看原帖
刚学OI不久来求助 为什么这个会WA在任务4和5啊
138390
Light_snow楼主2020/12/3 12:59
#include<iostream>
#include<cstdio>
#include<map>
#define ll long long
#define FIO "dream"

ll n,m;
ll num[1000005];
ll pre[1000005];

std::map<ll,int>QWQ;
std::map<ll,bool>QAQ;

ll ans1,ans2,ans3 = 0,ans4 = 1e18;

int main(){
	scanf("%lld%lld",&n,&m);
	QWQ[0] ++ ;
	for(int i = 1;i <= n;++i){
		scanf("%lld",&num[i]);
		pre[i] = pre[i - 1] ^ num[i];
		QWQ[pre[i]] ++ ;
	}
	ll ans = 0;
	for(int i = 1;i <= n;++i){
		if(!QAQ[pre[i]]){
			ans += (QWQ[pre[i]]) * (QWQ[pre[i]] - 1) / 2;
			QAQ[pre[i]] = 1;
		}
	}
	for(int i = 1;i <= m;++i){
		ll p,x;
		scanf("%lld%lld",&p,&x);
		ll before = pre[p];
		ll now = (pre[p] ^= x);
		QWQ[before] -- ;
		ans = ans + QWQ[now] - QWQ[before];
		QWQ[now] ++ ;		
		ans1 ^= ans;
		ans2 += (ans % 2);
		ans3 = std::max(ans3,ans);
		ans4 = std::min(ans4,ans);
	}
	std::cout<<ans1<<std::endl<<ans2<<std::endl<<ans3<<std::endl<<ans4<<std::endl;
}

和正解拍上了 是最草的

2020/12/3 12:59
加载中...