1 条题解
-
0
但愿我学过排序 题解
思路
设数组中有 个零。有序数组的前 位都应为零。令 为当前前 位中的一的个数,则后半部分恰有 个零。只有选中“前半部分的一”和“后半部分的零”时, 才会减少 ,这样的下标对恰有 个。
总下标对数为 。从状态 等到一次有效交换的期望操作数为 ,所以
三个层级为:小规模枚举全部二进制状态并解马尔可夫线性方程;中等规模使用上述一维递推并逐项快速幂求逆;满规模线性预处理所有逆元平方的前缀和。
做法
预处理 ,再令
每组统计零的总数 以及前 位中的一的个数 ,答案就是
数组已经有序时 ,答案自然为零。
复杂度
逆元与前缀和预处理为 ,每组扫描数组为 ;总时间 ,空间 。
- 1
信息
- ID
- 1193
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者