字符串的题很头疼
不 会 擅长打表
考试想了将近2个小时
想到了重复的长什么样子
然而不会正确的加回来
甚至加多了发现有各种重复
感觉药丸,,,换题
证明:
想了两个小时
用总的-合法的
合法的有重复 恶心
设插入的串为x
那么所有插入后的串长这个样子:
abcXsgd
abcsgXd
考虑重复的情况,可以掐头去尾,变成Xsg和sgX类似的情况
就是$a+b==b+a$
不妨设a+b==b+a成立此时重复 倒着推出重复的前提条件
[...........][...] [..][...........]
[...][...........] OR [...........][..]
其中的X串是插入的可以任意设字母变化,剩下的是题目中给的串的一部分 是固定的
由于设了$a+b==b+a$成立,所以至少有一种方案使得为X安排字母使得$a+b==b+a$
那么在原串的插入情况中不仅有Xsg , sgX 这种情况 还会有 删掉一个(把下面的X往前插一个的情况)(Xs,sX)
由于原先有方案合法那么删掉一个的情况下一定可以合法(因为X可以自由安排)
:[...........][...]
[...][...........] 由于合法 那么中间部分相同 左右两侧X的部分是继承固定串的,删掉一个后依然有继承能力
那么a+b==b+a重复的话说明a+一个长度为1的串(字母)==字母+b
[...........][...] [...........][.]
[...][...........] - > [.][...........]
所以a+b==b+a的前提是a+字母==字母+b
那么要满足X的首字母等于这个字母
即:X的首字母==X插入后X的后一个字母
这就是发生重复串的前提条件。
如何避免
1.先都加上 最后减去
2.考虑加的时候少加一个(提前预知后方有串可以和准备加的重复时不加了)
第一种容易发现难以求出(也许根本不能)
第二种情况下由于每一次提前预知不加 $a=b=c$ 预知$a=b$, $a$不加 $b=c$ $b$不加 可以解决连等多重复问题,很优秀
那么由得出的前提条件可以提前预知
X的首字母是可以随便安排的,所以只要后边有字母 X的首字母就不能填那一个(预知,不加)。
其余位置随便填 所以X的内部方案$25*26^{n-|s|-1}$ 可以插在$|s|$个位置(不是$|s|+1$因为插在最后后边没有字母)
所以合法方案数为$25*26^{n-|s|-1}*|s|+26^{n-|s|}$;
用总的减去
答案:$26^{n}- |s|*25*26^{n-|s|-1} - 26^{n-|s|}$;