定义
根据OEIS A006345的描述:
要查找
a(n)
,请考虑a1
或a2
。对于每个a(n)=1,2
序列,找到最长的重复后缀,即对于每个序列,找到s
具有序列a(1),...,a(n)
结尾的最长序列ss
。使用导致后缀较短的数字。a(1) = 1
。
解决的例子
a(1)=1
。
如果是a(2)=1
,我们将得到1 1
从末尾最长的一倍子串是的序列1
。如果a(2)=2
不是,那么它将是空的子字符串。因此a(2)=2
。
什么时候n=6
,我们在1 2 1 1 2 1
和之间选择1 2 1 1 2 2
。在首选中,1 2 1
从末尾开始连续翻倍。在第二选择中,它是2
。因此,a(6)=2
。
什么时候n=9
,我们在1 2 1 1 2 2 1 2 1
和之间选择1 2 1 1 2 2 1 2 2
。在第一种选择中,最长的双倍连续子字符串是2 1
,而在第二种选择1 2 2
中,最后连续地双倍连续。因此a(9)=1
。
任务
给定n
,退货a(n)
。
眼镜
n
将是积极的。- 您可以使用0索引而不是1索引。在这种情况下,请在您的答案中注明。同样,在这种情况下,
n
也可以0
。
测试用例
测试用例是1索引的。但是,您可以使用0索引。
n a(n)
1 1
2 2
3 1
4 1
5 2
6 2
7 1
8 2
9 1
10 1
11 2
12 1
13 2
14 2
15 1
16 1
17 2
18 1
19 1
20 1
n=9
,第一个选择的末尾1 2 1 1 2 2 1 2 1
有双倍的子字符串2 1
。