【BZOJ】【P3881】【Coci2015】【Divljak】【题解】【AC自动机】

传送门: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:

不贴代码了

你可能感兴趣的:(bzoj)