3881: [Coci2015]Divljak

根据fail的性质克制,对于s建ac自动机后,查询t包含的串即为经过每个点的所有fail的权值和。

即fail会经过的点都被当前t所包含,那么建立fail树以后,就是查询s所在位置的子树有多少个点被不同t所经过。

用dfs序树状数组维护即可...

c++代码如下:

 

9 + 4 =