#4635. 模板.Lyndon 分解
模板.Lyndon 分解
【模板】Lyndon 分解
题目描述
这是一道模板题。
读入一个由小写英文字母组成的字符串 ,请把这个字符串分成若干部分 ,使得每个 都是 ,且 。输出 到 这些串长度的右端点的位置。位置编号为 到 。
一个字符串 是一个 ,当且仅当 是其所有后缀中最小的字符串。
为了减小输出量,你只需要输出所有右端点的异或和。
输入格式
一行一个长度为 的仅包含小写英文字母的字符串 。
输出格式
一行一个整数,表示所有右端点的异或和。
样例 #1
样例输入 #1
ababa
样例输出 #1
3
样例 #2
样例输入 #2
bbababaabaaabaaaab
样例输出 #2
23
提示
第一组样例的答案为 2 4 5
。
第二组样例的答案为 1 2 4 6 9 13 18
。
- 对于 的数据,保证 ;
- 对于 的数据,保证 。