这是一篇口胡题解。
CF1896E Permutation Sorting
写一个题解区没有的做法。
首先有结论,每个点最多操作 n 次。
为啥呢?你发现对于一个序列 a,若你执行了 n 次,此时最多形成一个大小为 n 的置换环,此时操作 n 次,每个点必定能到达他应该到达的位置,否则每个环单独考虑,次数显然更小。
那么一个经典的套路,在后缀建立 n 个点,前缀建立 n 个虚点,那么此时每次操作等价于将最右边的不满足要求的点往左移动至最右侧没有数字的虚点,注意及时删去满足要求的点,此时线段树维护即可。
时间复杂度 O(nlogn)。
为啥要评绿+啊?
%%%%%%%%%%%%%%%% cCcccccCcCCCCcCccccCCcCcccorz %%%%%%%%%!!!!!!
What is "duel"? \wssb
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
2024-02-07 「杂题乱刷」CF1886D
2024-02-07 「杂题乱刷」CF1927D