csp-s105 T1 小W的魔术

字符串的题很头疼spa

擅长打表继承

考试想了将近2个小时字符串

想到了重复的长什么样子io

然而不会正确的加回来co

甚至加多了发现有各类重复字符

感受药丸,,,换题ab

 

证实:

想了两个小时

用总的-合法的

合法的有重复  恶心

设插入的串为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|}$;

相关文章
相关标签/搜索