赛时用的DP,但是转移有一点点想不清楚
设\(f[i][0/1]\)表示前\(i\)个字符,以\(0/1\)结尾的最小删除数目,\(g[i][0/1]\)表示前\(i\)个字符,在达到以\(0/1\)结尾的最小删除数目的前提下的方案数
然后就会发现此时的\(g\)比较难转移,我们必须要将删除字符转换为保留字符,这样的话就可以设\(g[i][0/1]\)表示前\(i\)个字符,在达到以\(0/1\)结尾的最长保留字符的前提下的方案数,这样就要好转移得多
最后方案数要乘以一个阶乘。但是实际上,从样例的解释来看,他的方案数的每一个位置不是原字符串的位置,而是此时已经经过前面的删除的剩下的字符串的位置,这个时候就还要证明两者一一对应才可以直接乘以阶乘,然后官方题解却没有证明,这个感觉好像还是比较难证明的
但是更好的解法其实是官方题解,注意这种分块的操作,已经遇到了好多次啦
标签:Alternating,字符,结尾,删除,题解,Make,阶乘,个字符 From: https://www.cnblogs.com/dingxingdi/p/18355130