periods of words

 

看例子

串a是babababa,前缀p就是b,ba,bab,.....bababab,叫proper前缀

Q是p然后QQ的话,a得是QQ前缀

用next来算最小的前缀

然后算到不能算了就拿整个串长减next掉后的那个前缀长

就是最大的Q了

 

 

 

 整体就是先namespace一个型

然后写一个next运作的函数

然后在名称空间里运作这个函数

这个算法的话就是next是最大的前后缀

你求2次,就是在求前缀的前缀,长度会变小

只要这个长度不是0不是-1就一直求下去

他肯定还有最大的前后缀

一直到他没有前后缀的空间了就停

然后拿串a减就是要求的最大的Q

 然后的话就是把求完的Q都+=一下就可以了搞一个ans

 

posted @ 2022-04-26 22:44  静听微风tom  阅读(31)  评论(0编辑  收藏  举报