题意
给你
题解
本文中的
考虑一个给定的询问串。
记
若
直接暴力枚举每一个
填什么,给总答案加上对应的 串的权值。时间复杂度 。 若
记
。此时: - 若
,则答案为 。 - 若
,则答案为 ,即用钦定 的所有位置填 的方案数减去本来是 的位置填了 的方案数。
这启示我们考虑容斥,用钦定
的位置填 的方案数,减去 的位置填了 的方案数。因为 所以直接枚举哪些本来是 的位置填了 即可,即枚举 的子集。即答案为:
时间复杂度。 - 若
若
同
,记 ,即 表示所有串 满足其所有 的位置构成的集合是 中 的位置构成的集合的超集的串 的权值和,则答案为:
时间复杂度。
综上所述,单次询问的时间复杂度为