警示后人

P11362 [NOIP2024] 遗失的赋值

YL_billow @ 2024-11-30 18:39:02

如果你样例三的第四个点和最后一个点挂了,并且你的去重是这么写的:

sort(a+1,a+m+1);len=ans=0;
for(int i=1;i<=m;++i)
    if(a[i].c^a[i-1].c) q[++len]=a[i];
    else if(a[i].d^a[i-1].d){len=-1;break;}
if(!(~len)){print(0,'\n');continue;}

那么你可能写成了这样:

sort(a+1,a+m+1);len=ans=0;
for(int i=1;i<=m;++i)
    if(a[i].c^a[i-1].c) q[++len]=a[i];
    else if(a[i].d^a[i-1].d){len=-1;break;}
    else ++i;
if(!(~len)){print(0,'\n');continue;}

不要像我赛时半个小时打完小样例全过,调了两个小时还没调出来导致痛失 140 pts,结果赛后重写一遍过了。。。

过不了样例三但是能过民间数据(24.11.30)。

这样写会把有一串个数为偶数的连续的相同的一元限制之后的位置忽略到,然后 WA。

挂大分了/ll


|