SAM+线段树合并的裸题. 但我们讨论AC自动机的做法. 先建出AC自动机.考虑询问在[a,b]中出现的次数就是\([1,b]\)的出现次数-\([1,a-1]\)的出现次数.把询问离线.然后我们要求的就是第i个字符串在\([1,x]\)中出现次数.我们在从\([1,x-1]\)到\([1,x]\)的过程中把\(S_x\)放到AC自动机上跑,跑到的每一个节点都加1.然后询问就是在\(S_i\)在fail树上对应位置求一个子树和这个用树状数组维护就行.因为fail树上每一个节点的后代都包含这个节点…