首页 > 其他 > 详细

P2375 [NOI2014]动物园

时间:2019-02-13 00:57:40      阅读:187      评论:0      收藏:0      [点我收藏+]

考虑kmp。
这个题的主要问题就在于怎样使复杂度是正确的O(n)。
可以先预处理一个数组cnt[]表示不考虑不能相交这个限制,有多少个border。
这个东西其实也就是fail树上的深度。
然后考虑怎么算num,直接暴力跳到长度<=i/2为止,第一合法个位置的cnt就是答案。
这样做复杂度依然是均摊O(n)的,因为j每次最多+1。

考虑Z-box。
求出每个后缀和原串的lcp后。
枚举每一个合法后缀的左端点在什么地方。
然后这个后缀会对长度为min(i,lcp(suf))产生一个贡献,取min那一步是为了不能相交。

P2375 [NOI2014]动物园

原文:https://www.cnblogs.com/Creed-qwq/p/10367642.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!