1 条题解
-
8
对于一个 ,我们只关心所有数与 的位置关系,即大于 的要在 的右边,小于的在左边,而其他数的相对位置我们并不关心。于是一次 或 包含数 的操作可以由 或 来替代,效果不变。
记 表示数 的位置,于是所有操作有 或 ,不难想到最优方案为每次把左边一段连续的大于 的数移到最右边,右边同理。
于是 便为 左边大于 的数的极大连续段个数与 右边小于 的极大连续段个数之和,这是一个简单的连续段DP。
令 表示从大到小填了 个数,当前连续段个数为 , 值之和为 ,排列的右端点是否已被填的方案数,转移便很显然了。
时间复杂度 ,当 时,发现 在 左右的时候答案便是 了,将 与 取min ,可以减少一定的时间与空间消耗。
- 1
信息
- ID
- 16
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 9
- 标签
- 递交数
- 419
- 已通过
- 35
- 上传者