秘密消息

提交数: 28, 通过率: 39.29%, 平均分: 46.36

题目描述:

农夫John(以后简称“FJ”)有些不想让他的奶牛看见的秘密消息;这条消息是一个长度至少为2仅包含字符A..Z的字符串。为了加密他的消息,FJ对这条消息进行了一系列“操作”。一次对字符串S的“操作”是指去掉S的开头或末尾字符,然后将原来的S拼接到其开头或末尾。例如,一次对于字符串ABCD的操作可能有以下4种结果:

BCDABCD
ABCABCD
ABCDABC
ABCDBCD

已知最终加密后的字符串,请计算FJ有多少种可能的方法对某一源字符串进行一次或多次重复的“操作”得到该加密字符串。尽管对一个字符串的不同方法的“操作”可能得到相同的结果,这些方式也应该被视作不同而被分别计数。例如,有4种不同的操作方法(对应于上面例子中的4种操作方法)从AA得到AAA。

输入格式:

一个长度不超过100的字符串

输出格式:

共1行:FJ对某个长度至少为2的源字符串进行一次或多次操作后能够得到该结果字符串的不同方法数。如果没有方法得到结果字符串,则输出0。

样例输入:

ABABA

样例输出:

6

提示:

以下是FJ可以得到ABABA的不同方法:
1. 源始为 ABA -> AB+ABA
2. 源始为 ABA -> ABA+BA
3. 源始为 AB -> AB+A -> AB+ABA
4. 源始为 AB -> AB+A -> ABA+BA
5. 源始为 BA -> A+BA -> AB+ABA
6. 源始为 BA -> A+BA -> ABA+BA

时间限制: 1000ms
空间限制: 256MB

来源: Usaco2014Feb铜