← RoseCode

ROSECODE 372

杀死九头蛇

Slaying the hydra

Philippe_57721 · 编程 ·

九头蛇是一棵有根的树。

赫拉克勒斯的任务是砍掉九头蛇的所有头来杀死它。
但九头蛇的头会按照以下规则再次生长。在步骤 n :
- 如果赫拉克勒斯砍掉从根部长出的头,九头蛇就不会长出任何头。
- 如果 Hercules 切割了附加到给定节点的头,则该头将被删除。
头部所附着的节点在下面的节点上被复制 n 次。




这是小九头蛇的进化过程:



我们将九头蛇的大小定义为其头和节点的数量。
上图中的九头蛇在步骤 1 处的大小为 4。

我们可以将九头蛇表示为字符串,如下所示:
  • n 一片叶子
  • n(..) 一个节点,括号内是其子节点
例如,在上图中,第一个 3 九头蛇是:
n(n(nn))
n(n(n)n(n))
n(nnnn(n))

我们总是砍最左边的头。
如果我们考虑所有大小为 5 的九头蛇,在 100 步骤之后,达到的最大大小如下:
  • n(n(n(n(n)))) - 5686
  • n(n(n(nn))) - 341
  • n(n(n(n)n)) - 288
  • n(n(n(n))n) - 21
  • n(n(nn(n))) - 70
  • n(n(nnn)) - 156
  • n(n(nn)n) - 9
  • n(n(n)n(n)) - 6
  • n(n(n)nn) - 5
  • n(nn(n(n))) - 67
  • n(nn(nn)) - 20
  • n(nn(n)n) - 5
  • n(nnn(n)) - 5
  • n(nnnn) - 4
(步数之前的初始大小不计算在内)
5 最大尺寸为(按降序排列): 5686,341,288,156,70

在 100 步之后,所有 6 尺寸的九头蛇中 5 达到的最大尺寸是多少?

答案格式:逗号分隔列表,按降序排列

[我的计时:55 秒]
图片由 Andrej Bauer 提供