警钟撅烂(WA1~10的可能)
查看原帖
警钟撅烂(WA1~10的可能)
300166
Zikl楼主2023/9/30 20:16

错误的

for(int i=1;i<=cntq;i++){
		while(ll>qq[i].l) now+=!cnt[a[--ll]]++;
		while(ll<qq[i].l) now-=!--cnt[a[ll++]];
		while(rr>qq[i].r) now-=!--cnt[a[rr--]];
		while(rr<qq[i].r) now+=!cnt[a[++rr]]++;
		while(tt<qq[i].t) update(i,++tt);
		ans[qq[i].id]=now;
	}

正确的

	for(int i=1;i<=cntq;i++){
		while(ll<qq[i].l) now-=!--cnt[a[ll++]];
		while(ll>qq[i].l) now+=!cnt[a[--ll]]++;
		while(rr<qq[i].r) now+=!cnt[a[++rr]]++;
		while(rr>qq[i].r) now-=!--cnt[a[rr--]];
		while(tt<qq[i].t) update(i,++tt);
		while(tt>qq[i].t) update(i,tt--);
		ans[qq[i].id]=now;
	}

我也不知道这点错误我怎么改了这么久,希望后人不要和我一样zz。

2023/9/30 20:16
加载中...