给定一些由左右符号组成的输入,输出将这些输入链接在一起的链。
可以将输入想象成多米诺骨牌,不能水平翻转,并需要将它们链接在一起。创建大的循环链(如果您无法在现实中使用真正的多米诺骨牌,则忽略此步骤)优于小的循环链,而小的循环链优于起点和终点不匹配的链。
我们要寻找具有更多循环链(不管有多少个或长度如何)的输出。例如,3个循环链的输出比1个大链和一个剩余的单个多米诺骨牌更好。
有人能指点我正确的方向吗?这属于哪一类问题,是否有现有算法可用于解决?
示例(输出可能不正确!):
可以将输入想象成多米诺骨牌,不能水平翻转,并需要将它们链接在一起。创建大的循环链(如果您无法在现实中使用真正的多米诺骨牌,则忽略此步骤)优于小的循环链,而小的循环链优于起点和终点不匹配的链。
我们要寻找具有更多循环链(不管有多少个或长度如何)的输出。例如,3个循环链的输出比1个大链和一个剩余的单个多米诺骨牌更好。
有人能指点我正确的方向吗?这属于哪一类问题,是否有现有算法可用于解决?
示例(输出可能不正确!):
in[0]=(A,B)
in[1]=(B,C)
in[2]=(C,A)
out[0]=(0,1,2)
in[0]=(A,B)
in[1]=(B,A)
in[2]=(C,D)
in[3]=(D,C)
out[0]=(0,1)
out[1]=(2,3)
in[0]=(A,B)
in[1]=(B,A)
in[2]=(C,D)
in[3]=(E,F)
out[0]=(0,1)
out[1]=(2)
out[2]=(3)
in[0]=(A,B)
in[1]=(B,A)
in[2]=(C,D)
in[3]=(D,E)
out[0]=(0,1)
out[1]=(2,3)
in[0]=(A,B)
in[1]=(B,C)
in[2]=(C,D)
out[0]=(0,1,2)