循环自我描述列表
如果满足以下条件,则正整数列表周期性地自我描述。
- 是非空的。
- 的第一个和最后一个元素不同。
- 如果将分为相等元素的游程,则每个游程的元素等于下一个游程的长度,最后一个游程的元素等于第一游程的长度。
例如,考虑。它是非空的,并且第一个和最后一个元素是不同的。当我们掰成运行,我们得到。
- 第一次运行为 s,下一次运行的长度为。
- 第二次运行是一个运行 s,并且下一个游程的长度,,是。
- 第三次运行是一个运行 s,并且下一个游程的长度,,是。
- 第四轮为 s,下一轮的长度为。
- 最后,最后一次运行的是一个运行秒,所述第一游程的长度,,是。
这意味着是循环自描述列表。
对于非例如,列表不是周期性自描述的,由于运行 s的后面长度的运行。列表也没有周期性自描述的,自上次运行的是一个运行 S,但在第一次运行具有长度。
任务
在这种挑战,你的输入是一个整数。您的输出应为总和等于的循环自描述列表的数量。例如,应导致中,由于周期性自描述列表,其总和为是,,和。最低字节数获胜,并且适用其他标准代码高尔夫球规则。
这是输入到的正确输出值:
1 -> 0
2 -> 0
3 -> 0
4 -> 2
5 -> 0
6 -> 2
7 -> 0
8 -> 4
9 -> 0
10 -> 6
11 -> 6
12 -> 12
13 -> 0
14 -> 22
15 -> 10
16 -> 32
17 -> 16
18 -> 56
19 -> 30
20 -> 96
21 -> 56
22 -> 158
23 -> 112
24 -> 282
25 -> 198
26 -> 464
27 -> 364
28 -> 814
29 -> 644
30 -> 1382
31 -> 1192
32 -> 2368
33 -> 2080
34 -> 4078
35 -> 3844
36 -> 7036
37 -> 6694
38 -> 12136
39 -> 12070
40 -> 20940
41 -> 21362
42 -> 36278
43 -> 37892
44 -> 62634
45 -> 67154
46 -> 108678
47 -> 118866
48 -> 188280
49 -> 209784
50 -> 326878
4
意外的转折!在描述的一半,我期望仅确定列表是否为CSD的任务就没那么有趣了。荣誉
—
Sparr
令我有些伤心的是,定义中不包含第一个元素和最后一个元素相同且被视为同一组的列表,就像列表实际上是一个没有明显开始/结束的循环一样。
—
Sparr
这是代码问题,因此,我认为确定列表是否周期性地自我描述会更有趣(解决方案的执行速度更快),如果除了生成所有列表和计数之外没有其他捷径的话。
—
user202729
有一个多项式时间算法,但是很难编程,而且绝对不如生成和验证所有可能列表的解决方案那样复杂。
—
user202729
可以获取除2以外的
—
Nitrodon '18
n,1,...,1
每个偶数作为,并且可以通过3,2,2,2,1,1
将一个偶数级联来获得大于13的每个奇数。读者可以练习证明13是不可能的。