假设你有一个双n多米诺骨牌。拿一块并选择其中一面。将那一面作为根,用共享那一面的所有可能的组合画出树。每侧具有相同值的片段仅计为一个子树。 有关具有双2多米诺骨牌的树的示例,请参阅此Tree,其中[0,1]为根,0为所选边。
此树包含14个节点。 现在以root身份迭代每个部分,并将每个部分作为选择的一面。
问题是,这些树中的最大节点数是多少? 我创建了一个程序,我有一些信息。
Double N Maximum Nodes in some tree 0 1 1 3 2 21 3 487 4 147753 5 133720011
我不知道是否有公式,算法,伪代码,动态编程来解决这个问题,但欢迎任何帮助。
编辑: 不难看出,两侧具有相同值的所有部分都引起了具有相同数量的节点的树,并且对于具有不同值的所有部分,由于排列而相同。 因此,您只需要检查树中节点的数量,并将[0 0]片段作为根。
答案 0 :(得分:0)
您的问题似乎与计算不完全使用相同边缘两次的完整图表中的路径有关。您可以考虑标记为0
到N
的顶点上的完整图表,并且每个多米诺骨牌都可以被视为其上的数字之间的边缘。请注意,您还要包含从每个顶点到自身的边。
一个相关且可能更容易的问题是计算欧拉路径,即使用每一个多米诺骨牌。似乎没有一个完全封闭的形式答案,即使这样,但这是一篇分析它并给出一些计算的论文:http://users.cecs.anu.edu.au/~bdm/papers/euler.pdf。