【算法原理+洛谷P6114+HDU6761】Lyndon分解
算法原理:
Duval算法时间效率O(n)O(n)O(n)
此处谈一谈自己对算法原理的理解:
k-j相当于循环节的长度,i到j之间可能会出现多个重复的lyndon串,所以后面更新i的时候用的是while。
s[j]<s[k]的时候很好理解,s[j]包含在以i为起点的lyndon串中,j此时回退到起点,
s[j]=s[k]时, j和k同时++,一直在向右移动匹配(i到j之间可能出现多个循环节),此时循环节的长度不变。
例题
lyndon分解后每个lyndon串的右端点(字符串下标从1开始存)
洛.
原创
2020-10-24 21:46:10 ·
373 阅读 ·
0 评论