diverta 2019 Programming Contest 2 E.Balanced Piles
这题很有意思啊
考虑数\(x\),若其不变成\(H\),其终将最小值
若当前最小值为\(x\),个数为\(num\),不考虑其转移后的数,方案为\(\frac{1}{num!}\)
对于最大值\(\in[i-D,i)\),其最小值可以成为\(i\)
对于最大值\(\in[i-D,i)\),若确定了该集合,当其转移到最大值为\(i\)时,最大值的个数是任意的
考虑提前将某个值到达最小值时乘上\(\frac{1}{num!}\)
令\(f_i\)为最大值为\(i\)时上述方案数
\(f_i=(\sum\limits_{k=1}^{n}k!)(\sum\limits_{k=i-D}^{i-1}f_k)\)。特殊的,\(f_0=n!\)
由于\(H\)后不能再转移了,故\(Ans=\frac{1}{\sum\limits_{k=1}^{n}k!}f_{H}\)