题目链接
题意
定义antisymmetric串为任意,都有
现在问有多少长度为$2L$的antisymmetric串,包含给出的$n$个串。
思路
如果没有antisymmetric的限制,那么就是一道很裸的AC自动机上的dp。现在我们考虑加了这一个条件,我们会增加怎样的限制呢。
仔细想一想,我们这个字符串,是可以通过确定一半来得到另一半的。
对于字符串只在其中一边出现的情况,我们可以建出所有串的正串和反串,然后放在AC自动机上跑就可以啦。
那么还有另一种情况,就是这个字符串是跨过中轴的,对于我们的做法,跨过中轴的也是可以处理的,只要我们确定字符伸展到这个位置时确实包含了当前要找的字符串,首先我们枚举他跨过中轴的位置,然后看两侧是否满足反对称,如果是反对称,那么在AC自动机上建出长的那一部分,去跑dp就可以了。
1 |
|