← RoseCode

ROSECODE 480

Prüfer 编码 I

Prüfer Code I

Philippe_57721 · 编程 ·

普吕弗代码 是一种非常紧凑的方式来表示 标记的树。

我们可以将树表示为具有以下规则的字符串:(伪 BNF)
tree = node | node '(' tree [ ',' tree ] ')' 
node = an integer
例如:
1(2(3(4,5)))


1(2(3),4,5)


考虑一棵带标签的树,其中 n 个节点按顺序标记为 1,2,,n

我们可以将其 Prüfer 代码视为某个整数的基本 10 表示。

例如,树 1(2(3,4(5)),6(7),8) 具有以下 Prüfer 代码 {2,4,2,1,6,1} = 242161

查找所有具有 10 节点的标记树,其 Prüfer 代码对应于质数。
在这些树中找到那些普吕弗代码包含不同值的树。

答案格式:值的总和,(/以字符串表示形式分隔的树列表 - 字典顺序)

示例: 11006162,1(2(3(4(5(6)))),7(8))/1(2(3(4(5))),6(7(8))) // 对于 8 个节点

[我的时间:即时]