关于RE的玄学疑惑

P1997 faebdc 的烦恼

```cpp #include<bits/stdc++.h> #include<iostream> #define ll long long #define back return #define ri register int using namespace std; ll read() { ll x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=x*10+ch-'0'; ch=getchar(); } back x*f; } int n,m,t,len,a[200005],pos[200005],L[200005],R[200005]; int cnt[2005][2005],sum[2005][2005]; int jsq[200005]; vector<int> q[200005]; ll ask(ll l,ll r) { int max1=0,ans=0,p1=pos[l],q1=pos[r]; if(p1==q1) { for(ri i=l;i<=r;i++) { int fir=lower_bound(q[a[i]].begin(),q[a[i]].end(),l)-q[a[i]].begin(); int sec=(--upper_bound(q[a[i]].begin(),q[a[i]].end(),r))-q[a[i]].begin(); int now=sec-fir+1; if(max1<now) max1=now,ans=a[i]; } back max1; } if(sum[p1+1][q1-1]) max1=cnt[p1+1][q1-1],ans=sum[p1+1][q1-1]; for(ri i=l;i<=R[p1];i++) { int fir=lower_bound(q[a[i]].begin(),q[a[i]].end(),l)-q[a[i]].begin(); int sec=(--upper_bound(q[a[i]].begin(),q[a[i]].end(),r))-q[a[i]].begin(); int now=sec-fir+1; if(max1<now) max1=now,ans=a[i]; } for(ri i=L[q1];i<=r;i++) { int fir=lower_bound(q[a[i]].begin(),q[a[i]].end(),l)-q[a[i]].begin(); int sec=(--upper_bound(q[a[i]].begin(),q[a[i]].end(),r))-q[a[i]].begin(); int now=sec-fir+1; if(max1<now) max1=now,ans=a[i]; } back max1; } int main() { //freopen("f1.in","r",stdin); //freopen("f1.out","w",stdout); n=read(),m=read(); for(ri i=1;i<=n;i++) a[i]=read(),a[i]+=100000; t=sqrt(n*log2(n)),len=n/t; for(ri i=1;i<=t;i++) L[i]=(i-1)*len+1,R[i]=i*len; if(R[t]<n) t++,L[t]=R[t-1]+1,R[t]=n; for(ri i=1;i<=t;i++) for(ri j=L[i];j<=R[i];j++) pos[j]=i; for(ri i=1;i<=t;i++) { memset(jsq,0,sizeof(jsq)); for(ri j=i;j<=t;j++) { cnt[i][j]=cnt[i][j-1],sum[i][j]=sum[i][j-1]; for(ri k=L[j];k<=R[j];k++) { jsq[a[k]]++; if(cnt[i][j]<jsq[a[k]]) cnt[i][j]=jsq[a[k]],sum[i][j]=a[k]; } } } for(ri i=1;i<=n;i++) q[a[i]].push_back(i); while(m--) { ll l=read(),r=read(); cout<<ask(l,r)<<"\n"; } back 0; } ```
by 断清秋 @ 2022-02-02 22:06:55


$n=1$ 时 $t = 0$,此时 `n / t` 会 RE。
by BootsH @ 2022-02-02 22:17:51


`#9` $n=1$
by BootsH @ 2022-02-02 22:18:39


@[断清秋](/user/93266) 输入 $n=1$ 时 $t=0$。
by rxjdasiwzl @ 2022-02-02 22:20:12


@[developer6hyx](/user/317805) 我超,牛逼。太感谢了
by 断清秋 @ 2022-02-02 22:20:15


@[rxjdasiwzl](/user/96446) 谢谢!
by 断清秋 @ 2022-02-02 22:20:31


这个帖子留着警示后人吧 我还从没见过分块题有 $n=1$ 的点 大受震撼
by 断清秋 @ 2022-02-02 22:21:22


|