一个二离莫队的神奇问题
查看原帖
一个二离莫队的神奇问题
751442
mortis_life楼主2025/6/30 22:41

楼主也不知道这个问题算哪方面

这个题目算排名不是小于这个数的个数+1

这份代码是可以过的

其中两个关键地方

for(int i=1;i<=n;i++) {
		F.add(a[i],a[i]);  f[i]=f[i-1]+F.query(lim)-F.query(a[i]);
		G.add(a[i],1);     g[i]=g[i-1]+a[i]*(G.query(a[i]-1));
	}
//没有在预处理时加1

for(int i=1;i<=m;i++) 
S[i]+=S[i-1],A[q[i].id]=S[i]+qz[q[i].r]-qz[q[i].l-1];

//最后前缀和加回来

但是如果改成

for(int i=1;i<=n;i++) {
		F.add(a[i],a[i]);  f[i]=f[i-1]+F.query(lim)-F.query(a[i]);
		G.add(a[i],1);     g[i]=g[i-1]+a[i]*(G.query(a[i]-1)+1);
	}
//在预处理时加1

for(int i=1;i<=m;i++) 
S[i]+=S[i-1],A[q[i].id]=S[i];

//最后不加前缀和

就不正确了

萌新不太理解这是为何,希望大佬解答 T^T

2025/6/30 22:41
加载中...