本例练习节奏序列的对齐。你可以先阅读规则与数据,自己拟定一个方案,再对照逐步记录检查理由;重点是学会把限制、目标和实际操作联系起来。
本例规则和数据
两段记录只包含A、B、C、D四种节奏记号,只能删除,不能修改或重排。目标是从两段各保留一条完全相同且尽可能长的序列。位置从1开始编号。
左段:CCCCACADA 右段:CDCCBDCCA
先明确比较方法
对齐两段节奏记录时,要同时保留符号和前后顺序。两边各有同样数量的某个音符,并不保证这些音符都能按原顺序配对。
本题只允许删除记录,不允许换符号或交换顺序。这个练习用于理解保留共同节奏片段;它并不模拟某款音游的实际判定窗口。
答案与逐项计算
可保留共同片段CCCCCA,长度6;左段删除3项,右段删除3项。
左第1项C配右第1项C;双方位置都比上一对更靠后。
左第2项C配右第3项C;双方位置都比上一对更靠后。
左第3项C配右第4项C;双方位置都比上一对更靠后。
左第4项C配右第7项C;双方位置都比上一对更靠后。
左第6项C配右第8项C;双方位置都比上一对更靠后。
左第9项A配右第9项A;双方位置都比上一对更靠后。
对照方案与完整性检查
一个更短的合法共同片段是CCCDA,长度只有5。它虽然合法,却没有保留尽可能多的记录;合法性和最优性需要分别判断。
本例检查了164条合法候选记录,其中主指标达到最优的记录有2条。每条记录由左段的一组保留位置定义,并在右段寻找保持次序的相同片段;右段同一片段若有多种位置,仅保留一种代表。另用前缀递推核对最优长度,避免漏掉不同对齐方式。
怎样自己练一次
复盘时先遮住答案,按表写一条自己的候选,再依次核对对象是否重复、约束是否成立、算式是否完整。若与你的结果不同,应定位到第一处规则或计数差异,而不是立即认为两个答案必有一个算错;并列最优时,不同选择也可能都成立。
所有数值和规则均为本文虚构练习,只讨论题面明示的条件。实际游戏若还有距离、冷却、品质、隐藏状态或多人同时行动等因素,需要先加入这些条件,再重新比较;这里的结论不能直接当作任何具体游戏的配置建议。
