Luogu3604 美好的每一天

题意 ; 给出一个长度为 的字符串 次询问 有多少个子串在重排后可能形成回文串。

,字符集为小写英文字母。时限 ,空限


考虑一个字符串重排后可能形成回文串的充要条件:出现次数为奇数的字符个数

表示前缀 的各个字符出现次数的奇偶性,压成一个 位的二进制数。

使用莫队,当区间 时,答案变化量为:

满足 的二进制数只有 个。再用桶维护每个二进制数出现的次数即可支持 查询。

这个桶的大小为 ,有点太大了。本质不同的修改只有 种,询问只有 种,使用离散化即可节省空间。

接着使用二次离线莫队。

考虑如何 查询。我们将修改向能贡献到的查询连边,可以证明去重之后,每个修改只会对应 个查询。

这样,我们让修改主动贡献,即可 修改, 查询。

复杂度