比赛时间 | 比赛名称 | 赛中过题 | 总计过题 | 题目总数 | 罚时 | Dirt | 校内排名 |
---|---|---|---|---|---|---|---|
25.08.05 | 牛客多校7 | 4 | 10 | 10 | 305 | 3/7 | 14/19 |
_istina_: 签到题,切得偏慢了。让某个数减一等价于:在差分序列中选择相邻的两个数,前面减一后面加一。让序列单调不减等价于:使得差分序列中除第一个数之外其他数都大于等于 $0$ 。从后往前扫一遍,取最多的调整次数就行了。
_istina_: 操作要么不改变奇偶性,要么把所有数奇偶性改变。猜测可以将所有数变为仅相差一的两个数。答案就是奇数个数 $\times$ 偶数个数。严谨证明其实就是每次操作能把两个同奇偶的数变相等,最多 $n-1$ 次操作后所有奇数相等,所有偶数相等。再用一步操作使他们相差 $1$ 即可。
将矩阵展开为一行序列,可以看出每次旋转操作相当于进行了三次长度为 $12$ 的轮换和一次长度为 $4$ 的轮换。
又注意到进行偶数次轮换不改变序列中的逆序对数。因此由旋转生成的玩具中逆序对一定为偶数,而随机矩阵逆序对数为偶数的可能性只有一半。
因此若一套中 $10$ 个玩具的逆序对数均为偶数,其极大概率由旋转生成。
时间复杂度由计算逆序对的过程决定。此题暴力计数亦可通过。