[CF914F] Substrings in a String 题解
3000 分的题,正解似乎是什么分块套后缀自动机之类的,根本不会,但是我们有别的解法。
看到标签里有个 bitmask,于是恍然大悟,字符串题有位运算提示就很明显了,就是直接 bitset
乱搞字符串匹配。
当字符集大小可以接受时字符串匹配的一种乱搞做法,给每个字符集开一个 bitset
,如果一个位置上是这个字符,就给对应的 bitset
对应位置标上 \(1\),匹配的时候就每个字符所有位置一起匹配,匹配的结果与起来就是答案,如果是区间查询可以利用 bitset
右移差分。
注意坑点是右移差分的时候因为询问存在查询区间长度低于字符串长度的,所以要特判。
与正解不同,代码实现非常简单。