传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3881
感谢TimeMachine神犇的提醒
对S建AC自动机,记录每个串的末尾结点
插入就是在fail树上跑一遍,把经过且本次没有访问过的结点ans++
询问O(1)
如果在每个点挂链的话会T掉
考虑所有的S都是a,
然后我有10^5的插入a
每次插入扫一遍链,n^2了……
UPD:
鸟哥说我的做法复杂度不对……
搞了一下常数卡时过了
求教正确姿势
UPD:
发现自己犯了一个傻逼错误导致跑了15s+
改了之后暂时刷到了rank1
UPD:
卢爷把我叉掉喽
先滚回教室上晚自习明天重写
叉掉我的数据(卢爷提供思路TImeMachine做数据,暂未添加到bzoj)
不过同样的做法卢爷只用了1s+,我用了10s+……(标程<1s)
这什么情况 = =、
Code:
不贴代码了