本地AC但是在洛谷WA?
查看原帖
本地AC但是在洛谷WA?
669752
ZnHF楼主2024/3/20 17:24

记录。

对于测试点 22,在本地的输出与答案一致,但是被判定为错误。

求大佬们看看QWQ。

#include<bits/stdc++.h>
using namespace std;
int n,m,a[200005],t,cnt[200005],now,num[200005],l=1,r,ans[200005],b[200005],temp;
struct node{
	int l,r,id;
}q[200005];
bool cmp(node x,node y){
	if((x.l/t)==(y.l/t)){
		if((x.l/t)%2) return x.r<y.r;
		else return x.r>y.r;
	}
	else return x.l/t<y.l/t;
}
void add(int x){
	num[cnt[a[x]]]--;
	cnt[a[x]]++;
	num[cnt[a[x]]]++;
	now=max(now,cnt[a[x]]);
}
void del(int x){
	num[cnt[a[x]]]--;
	if(now==cnt[a[x]] && !num[cnt[a[x]]]) now--;
	cnt[a[x]]--;
	num[cnt[a[x]]]++;
}
signed main(){
	ios::sync_with_stdio(false);
	cin>>n>>m;
	t=sqrt(n);
	for(int i=1;i<=n;i++){
		cin>>a[i];
		b[i]=a[i];
	}
	sort(b+1,b+1+n);
	temp=unique(b+1,b+1+n)-b-1;
	for(int i=1;i<=n;i++){
		a[i]=lower_bound(b+1,b+1+temp,a[i])-b;
	}
	for(int i=1;i<=m;i++){
		cin>>q[i].l>>q[i].r;
		q[i].id=i;
	}
	sort(q+1,q+1+m,cmp);
	for(int i=1;i<=m;i++){
		while(l<q[i].l) del(l++);
		while(l>q[i].l) add(--l);
		while(r<q[i].r) add(++r);
		while(r>q[i].r) del(r--);
		ans[q[i].id]=now;
	}
	for(int i=1;i<=m;i++) cout<<-ans[i]<<endl;
	return 0;
}
2024/3/20 17:24
加载中...