蒟蒻莫队求助;
  • 板块P2709 小B的询问
  • 楼主HbugU
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/7/8 12:14
  • 上次更新2023/11/4 18:25:28
查看原帖
蒟蒻莫队求助;
510360
HbugU楼主2021/7/8 12:14

10个wa

#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define fr first
#define se second
#define FAST ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
using namespace std;
const int M=5e4+5;
int n,m,k,a[M],curr,curl,cnt[M],now,bl;
ll ans[M],s;
struct query{
	int id,l,r;
}q[M];
bool cmp(query x,query y){
	return (x.l/bl)==(y.l/bl)? x.r<y.r:x.l<y.l;
}
void add(int pos){
	s+=cnt[pos]*2+1;
	++cnt[pos];
}
void del(int pos){
	s-=cnt[pos]*2-1;
	--cnt[pos];
}
int main(){
	FAST;
	cin>>n>>m>>k;
	bl=sqrt(n);
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<=m;i++){
		cin>>q[i].l>>q[i].r;
		q[i].id=i;
	}
	sort(q+1,q+1+n,cmp);
	for(int i=1;i<=m;i++){
		int ql=q[i].l,qr=q[i].r;
		while(curl<ql) del(curl++);
		while(curl>ql) add(--curl);
		while(curr>qr) del(curr--);
		while(curr<qr) add(++curr);
		ans[q[i].id]=s;
	}
	for(int i=1;i<=m;i++){
		cout<<ans[i]<<endl;
	}
	return 0;
}
2021/7/8 12:14
加载中...