为什么
查看原帖
为什么
120438
Lacrymabre楼主2021/11/10 18:28

莫队统计答案,

for(int i=1;i<=m;i++){
		while(r<q[i].r) add(s[++r]);
		while(r>q[i].r) del(s[r--]);
		while(l<q[i].l) del(s[l++]);
		while(l>q[i].l) add(s[--l]);
		ans[q[i].id]=sum;
	}
	for(int i=1;i<=m;i++) {
		if(ans[i]==(q[i].r-q[i].l+1)) cout<<"Yes\n";
		else cout<<"No\n";
	}

是错的,

for(int i=1;i<=m;i++){
		while(r<q[i].r) add(s[++r]);
		while(r>q[i].r) del(s[r--]);
		while(l<q[i].l) del(s[l++]);
		while(l>q[i].l) add(s[--l]);
		ans[q[i].id]=(sum==q[i].r-q[i].l+1)?1:0;
	}
	for(int i=1;i<=m;i++) {
		if(ans[i]) cout<<"Yes\n";
		else cout<<"No\n";
	}

是对的。

这是为什么呢?

2021/11/10 18:28
加载中...