「杂题乱刷2」CF1896E

这是一篇口胡题解。

题目链接

CF1896E Permutation Sorting

解题思路

写一个题解区没有的做法。

首先有结论,每个点最多操作 n 次。

为啥呢?你发现对于一个序列 a,若你执行了 n 次,此时最多形成一个大小为 n 的置换环,此时操作 n 次,每个点必定能到达他应该到达的位置,否则每个环单独考虑,次数显然更小。

那么一个经典的套路,在后缀建立 n 个点,前缀建立 n 个虚点,那么此时每次操作等价于将最右边的不满足要求的点往左移动至最右侧没有数字的虚点,注意及时删去满足要求的点,此时线段树维护即可。

时间复杂度 O(nlogn)

posted @   wangmarui  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
历史上的今天:
2024-02-07 「杂题乱刷」CF1886D
2024-02-07 「杂题乱刷」CF1927D
点击右上角即可分享
微信分享提示