AT_arc102_d [ARC102F] Revenge of BBuBBBlesort! 题解

显然不满足“奇数位都是奇数,偶数位都是偶数”的排列一定无法排成升序,以下“序列”默认均满足这个条件。

定义“操作”指交换任意一个相邻三元组的 1,3 位,即不一定满足题目要求,但要保证操作后逆序对数减小

特别地,称满足题目要求的操作为“合法操作”。容易发现一个操作合法当且仅当其能消去 3 个全局逆序对。

引理:任意序列均可用若干操作排好序。证明:考虑对奇偶位置分别冒泡。

结论:某序列可用若干合法操作排好序,当且仅当其中全局逆序对数为奇数位间形成的逆序对数与偶数位间形成的逆序对数之和(下称“内部逆序对”)的三倍。

证明:穷举操作三元组的大小关系,发现每次操作必会使内部逆序对减一,于是内部逆序对数 k 就是操作步数。

必要性(前推后):该序列可用 k 步合法操作消去全部全局逆序对,而 k 步合法操作会消去 3k 个全局逆序对,则全局逆序对数 3k 为内部逆序对数 k 的三倍。

充分性(后推前):由引理,该序列一定可以用 k 步操作消去全部 3k 个全局逆序对。

每步最多消去 3 个全局逆序对,所以 k 步只能消去 3k 个全局逆序对,则取到等号时所有操作都合法。

所以该序列可用 k 步合法操作排好序。

posted @   Jijidawang  阅读(8)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示