随手把标题的 112 打成了 1123 。
E
考虑在最终数组里枚举一段上升的。求这一段并不移动,这一段左边的数的最后一次操作向左,这一段右边的数的最后一次操作向右,的方案数。
怎么处理 “最后一次操作”?
考虑 DP , \(f(i,j,k)\) 表示操作序列长度为 \(i\) ,其中有 \(j\) 个数最后一次操作向左, \(k\) 个数最后一次操作向右,方案数。
转移时向操作序列最前端加一个操作,可以保证刚才最后一次操作仍然是最后一次操作。
但这样 \(O(n^2 m)\) 过不去,优化一下状态,\(f(i,j)\) 表示操作序列长度为 \(i\) ,其中有 \(j\) 个数被操作过(“最后一次操作” 的方向没确定)。
- \(f(i,j)\times 2j \to f(i+1,j)\) (操作序列最前端加一个操作,操作已经操作过的数,可向左,向右)
- \(f(i,j) \to f(i+1,j+1)\) (弄一个新的数,“最后一次操作” 的方向没确定)
统计时乘上组合数,表示要决定一下“最后一次操作” 的方向。
F
咕咕咕