不妨看看你的 add 函数,如果像我一样偷懒写成了
add
void add(int x){ --num[cnt[a[x]]]; ++num[now=max(now,++cnt[a[x]])]; }
然后你就会发现 num 无法正常更新了。正确写法:
num
void add(int x){ --num[cnt[a[x]]]; ++num[++cnt[a[x]]]; now=max(now,cnt[a[x]]); }