题目大意 给定一个由且仅由字符’H’,’T’构成的字符串S。 给定一个最初为空的字符串T ,每次随机地在T的末尾添加’H’或者’T’。 问当S为T的后缀时,在末尾添加字符的期望次数。 对109+7取模 题解 设fi为从i−1匹配到i期望的匹配次数,gi表示匹配到i后下一次失配能匹配到什么位置(用KMP求),si=∑ij=1fj 考虑匹配到第i位的情况: fi=12×1+12(1+fgi−1+1+fgi−1+2+⋯fi)fi=2+si−1−sgi−1 答案为sn 时间复杂度:O(n) 代码