CF R876
D - Ball Sorting
首先不考虑小球的数量,假设有充足的小球,要求最少的移动次数,我们只需要拿出序列的最长上升子序列,这就是始终不会移动的小球的数量。
加上小球数量的限制。设始终不会移动的小球的集合为 \(S\),显然集合需要满足单调上升,它们将整个序列分为 \(f(S)\) 段,那么就需要 \(f(S)\) 个小球来调整这些段里小球的顺序。
考虑使用 dp 来求解。设 \(f_{i,j}\) 表示 \(1\sim i\) 位,上升子序列将序列分成了 \(j\) 段,最大长度为 \(f_{i,j}\),转移一下即可。