状压 dp + 费用提前计算。
考虑假如已经确定好了选出那些数(称作标记点),计算一下代价。
毛估估贪心就是先让它们尽量靠中间聚在一起,然后内部再算算逆序对。
尝试把这个东西均摊到每一个位置上,首先是让它们聚在标记点的中位数附近,那么每一个非标记点的代价就是左右两侧标记点个数的 (有这么多标记点要跨过它)。
对于标记点内部的交换,那就是算下逆序对。
这里要将代价均摊到每一个位置上是为了方便 dp 的过程中每加入一个点来计算代价,比较类似费用提前计算的思想。
从前往后枚举 ,设 为考虑标记点集合是 的代价,转移的时候枚举当前这个是否是标记点:
- 标记点:代价为以它为结尾的逆序对个数;
- 非标记点:,左右两侧标记点个数的 .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?